无法使用此在片段中显示吐司
Unable to show toast in fragment using this
我是 android 开发新手。我正在尝试使用从其他站点获得的以下代码在片段中显示 Toast:
Toast.makeText(this, "count is " + count, Toast.LENGTH_SHORT).show();
但是我在第一个参数中遇到了问题。有人可以帮忙吗?
使用getActivity()
Toast.makeText(getActivity(), "count is " + count, Toast.LENGTH_SHORT).show();
您可以使用 getActivity(),其中 returns activity 与片段相关联。
activity 是上下文(因为 Activity 扩展了上下文)。
所以你的代码将是这样的:
Toast.makeText(getActivity(), "count is " + count, Toast.LENGTH_SHORT).show();
如果您看到 Toast
class 的方法 makeText
的签名,您可以看到所需的第一个参数是上下文。
片段不是 Context 的子class,因此使用 this
关键字传递片段对象。
您必须使用 getActivity()
或 getContext()
方法。
Toast.makeText(getActivity(), "count is " + count, Toast.LENGTH_SHORT).show();
如果你想知道区别,请阅读这篇文章post
1) 您可以使用 getActivity() 而不是使用 this 关键字。代码如下所示,
Toast.makeText(getActivity(), "Count is" + count, Toast.LENGTH_SHORT).show();
覆盖片段 onAttach(Context) 方法并为所有需要上下文的调用存储 context。
class MyFragment extends Fragment{
private Context _context;
@Override
protected void onAttach(Context context){
_context = context;
}
private void showToast(){
Toast.makeText(_context, "count is " + count, Toast.LENGTH_SHORT).show();`
}
}
我是 android 开发新手。我正在尝试使用从其他站点获得的以下代码在片段中显示 Toast:
Toast.makeText(this, "count is " + count, Toast.LENGTH_SHORT).show();
但是我在第一个参数中遇到了问题。有人可以帮忙吗?
使用getActivity()
Toast.makeText(getActivity(), "count is " + count, Toast.LENGTH_SHORT).show();
您可以使用 getActivity(),其中 returns activity 与片段相关联。 activity 是上下文(因为 Activity 扩展了上下文)。
所以你的代码将是这样的:
Toast.makeText(getActivity(), "count is " + count, Toast.LENGTH_SHORT).show();
如果您看到 Toast
class 的方法 makeText
的签名,您可以看到所需的第一个参数是上下文。
片段不是 Context 的子class,因此使用 this
关键字传递片段对象。
您必须使用 getActivity()
或 getContext()
方法。
Toast.makeText(getActivity(), "count is " + count, Toast.LENGTH_SHORT).show();
如果你想知道区别,请阅读这篇文章post
1) 您可以使用 getActivity() 而不是使用 this 关键字。代码如下所示,
Toast.makeText(getActivity(), "Count is" + count, Toast.LENGTH_SHORT).show();
覆盖片段 onAttach(Context) 方法并为所有需要上下文的调用存储 context。
class MyFragment extends Fragment{
private Context _context;
@Override
protected void onAttach(Context context){
_context = context;
}
private void showToast(){
Toast.makeText(_context, "count is " + count, Toast.LENGTH_SHORT).show();`
}
}