Невозможно разрешить метод maketext() Toast

Я получаю сообщение об ошибке при создании Toast

Toast toast = Toast.makeText(this, text, duration);

Я получаю, не могу решить makeText() метод Toast.

Я получаю эту ошибку

java: no suitable method found for makeText(idtech.ESDN.ShapeData,java.lang.CharSequence,int)
    method android.widget.Toast.makeText(android.content.Context,int,int) is not applicable
      (actual argument idtech.ESDN.ShapeData cannot be converted to android.content.Context by method invocation conversion)
    method android.widget.Toast.makeText(android.content.Context,java.lang.CharSequence,int) is not applicable
      (actual argument idtech.ESDN.ShapeData cannot be converted to android.content.Context by method invocation conversion)

Ответ 1

Подпись makeText следующая

public static Toast makeText (Context context, CharSequence text, int duration)

первый параметр должен быть объектом контекста. Вы помещаете this, но this относится к этому объекту и может быть чем-то отличным от Activity (a Fragment).

Ответ 2

этот в вашем случае может не быть объектом активности. Возможно, вы используете метод Toast.makeText внутри объекта Click Listener. Чтобы решить эту проблему, вам необходимо использовать getApplicationContext():

Toast.makeText(getApplicationContext(), "Ваше сообщение", Toast.LENGTH_LONG);

Ответ 3

Вы импортировали виджет тоста?

import android.widget.Toast;

Вы также можете вызвать show() в той же строке, если вы хотите вывести его сразу:

Toast toast = Toast.makeText(context, text, duration).show();

Надеюсь, что это поможет.

Ответ 4

Убедитесь, что вы набираете:       Toast toast = Toast.makeText(this, text, duration);

Не:       Toast toast = new Toast.makeText(this, text, duration);

Ответ 5

Попробуйте Toast toast = Toast.makeText(getActivity(), text, duration);

Вы также можете добавить .show(), если хотите, чтобы он отображал

Ответ 6

В onClick(View view) прослушивании кликов в RecyclerView.ViewHolder контекст извлекается с помощью view.getContext(), как в:

`` `

public class MyHolder extends RecyclerView.ViewHolder implements 
View.OnClickListener {

    public MyHolder(View itemView) {
        super(itemView);
        //...
        itemView.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        Toast.makeText(view.getContext(), "the message", 
            Toast.LENGTH_SHORT).show();
    }

`` `

Ответ 7

Toast.makeText(YourActivity.this, текст, продолжительность).show();

Ответ 8

Если вы пытаетесь Toast добавить свой текст в MainActivity, сделайте следующее:

Toast.makeText(getApplicationContext(), "Your text", Toast.LENGTH_LONG).show();

Ответ 9

Я столкнулся с аналогичной проблемой в студии Android, я разрешаю эту проблему, используя getActivity() вместо this в фрагменте

Toast.makeText(getActivity(), "Your Text", Toast.LENGTH_SHORT).show();

Ответ 10

Извлеките контекст из вызывающего действия (например, this или MainActivity.this) и передайте его в метод, в котором находится тост. Таким образом, он сочетается с вызывающим действием.

Контекст приложения, который вы получаете из getApplicationContext() и getContext(), в основном предназначен для долго выполняющихся процессов. Использование его для недолговечных процессов может привести к утечкам памяти.

Ответ 11

Вместо

Toast toast = Toast.makeText(this, text, duration);  

Добавьте название своей деятельности перед словом "это"

Toast toast = Toast.makeText(MyActivity.this, text, duration); 

Ответ 12

У меня возникла аналогичная проблема, но в моем случае я узнал, что Xamarin С# и Java в студии Android имеют отличия при вызове некоторых функций (одни и те же функции).

При использовании Xamarin и С#, makeText становится MakeText, и шоу становится Show, как показано ниже:

Toast toast = Toast.MakeText(this, "Text", ToastLength.Long);
toast.Show();

Надеюсь, что это поможет:)

Ответ 13

Это может быть полезно, если вы пытаетесь использовать Toast in Fragment:

Toast.makeText(Your_Fragment_Name.super.getContext(), "Added", Toast.LENGTH_SHORT).show();

Ответ 14

У меня тоже была похожая проблема, но

getContext()

сделал свое дело для меня

// If message field is empty show a toast and alert the user
if (TextUtils.isEmpty(message)) {
   Toast.makeText(getContext(),"Please Enter a message", Toast.LENGTH_SHORT).show();
   return;
}

Ответ 15

Сначала добавьте

 import android.widget.Toast;

выражение, если вы еще не сделали, а затем

Toast.makeText(YourActvityName.this, "Your Text", Toast.LENGTH_SHORT).show();

Ответ 16

В случае тоста во фрагменте внутри действия с вкладками используйте getContext(), например,

Toast.makeText(getContext(), "Your Text Here", Toast.LENGTH_SHORT).show();

Ответ 17

в методе onClick попробуйте это


Toast.makeText(view.getContext(), "sorry", Toast.LENGTH_LONG).show();


это сработало от меня.