Невозможно разрешить метод 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();
это сработало от меня.