创建Toast
Toast toast = Toast.makeText(this, text, duration);
我无法解决makeText()
的{{1}}方法。
我收到此错误
Toast
答案 0 :(得分:25)
makeText的签名如下
public static Toast makeText (Context context, CharSequence text, int duration)
第一个参数必须是上下文对象。您放置this
,但this
引用此对象,它可能与Activity
(例如Fragment
)不同。
答案 1 :(得分:21)
此 可能不是活动的对象。您可能正在使用Toast.makeText方法单击Listener对象。 要解决此问题,您需要使用getApplicationContext():
Toast.makeText(getApplicationContext(),“Your Message”,Toast.LENGTH_LONG);
答案 2 :(得分:8)
您是否导入了Toast小部件?
import android.widget.Toast;
如果要立即输出,也可以在同一行调用show():
Toast toast = Toast.makeText(context, text, duration).show();
希望有所帮助。
答案 3 :(得分:5)
确保输入:
Toast toast = Toast.makeText(this, text, duration);
加:
Toast toast = new Toast.makeText(this, text, duration);
答案 4 :(得分:3)
尝试Toast toast = Toast.makeText(getActivity(), text, duration);
如果您希望显示
,您可能还希望附加.show()
答案 5 :(得分:3)
在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();
}
```
答案 6 :(得分:2)
Toast.makeText(YourActivity.this,text,duration).show();
答案 7 :(得分:1)
如果您在MainActivity中尝试Toast
您的文字,请执行以下操作:
Toast.makeText(getApplicationContext(), "Your text", Toast.LENGTH_LONG).show();
答案 8 :(得分:1)
我在android studio中遇到过类似的问题,我在片段
中使用getActivity()
代替this
解决了这个问题
Toast.makeText(getActivity(), "Your Text", Toast.LENGTH_SHORT).show();
答案 9 :(得分:1)
从调用活动中获取上下文(例如this或MainActivity.this),并将其传递给Toast所驻留的方法。这样,它与调用活动一起存在。
从getApplicationContext()和getContext()获得的应用程序上下文主要用于长时间运行的进程。将其用于短暂的过程可能导致内存泄漏。
答案 10 :(得分:1)
代替
Toast toast = Toast.makeText(this, text, duration);
在“此”字之前添加您的活动名称
Toast toast = Toast.makeText(MyActivity.this, text, duration);
答案 11 :(得分:0)
假设您正在片段中创建吐司....所以在上下文中使用 getactivity
假设您正在片段中创建吐司....所以在上下文中使用 getactivity
Toast.makeText(getActivity,"Your Text",Toast.LENGTH_SHORT).show();
答案 12 :(得分:0)
就像Blackbelt所说的,Toast的语法如下:
Toast.makeText(Activity.this, "Message",Toast.<specify Lenght>).show();
其中Activity.this
是当前活动,Message
是您要显示的字符串,而Toast.length
是您要为其显示其长度的长度。
答案 13 :(得分:0)
在onClick方法中尝试
std::vector <std::vector <int>> fill(int lin, int col) {
int val;
std::vector <std::vector<int>> mat(lin);
for (int i = 0; i < lin; i++) {
mat[i].resize(col);
for (int j = 0; j < col; j++) {
std::cin >> val;
mat[i][j] = val;
}
}
return mat;
}
它确实对我有用。
答案 14 :(得分:0)
如果在Tabbed Activity内的片段中有Toast,请使用getContext()例如
Toast.makeText(getContext(), "Your Text Here", Toast.LENGTH_SHORT).show();
答案 15 :(得分:0)
首先添加
import android.widget.Toast;
声明(如果尚未)
Toast.makeText(YourActvityName.this, "Your Text", Toast.LENGTH_SHORT).show();
答案 16 :(得分:0)
也有类似的问题,但
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;
}
答案 17 :(得分:0)
如果您尝试在片段中使用Toast,这可能会有所帮助:
Toast.makeText(Your_Fragment_Name.super.getContext(), "Added", Toast.LENGTH_SHORT).show();
答案 18 :(得分:0)
我遇到了类似的问题,但在我的情况下,我发现Android Studio中的Xamarin c#和Java在调用某些函数(功能相同)时存在差异。
使用Xamarin和c#时,makeText变为MakeText并显示为Show,如下所示:
Toast toast = Toast.MakeText(this, "Text", ToastLength.Long);
toast.Show();
希望这会有所帮助:)