使用此功能无法在片段中显示吐司

时间:2016-03-06 11:10:12

标签: android android-fragments this android-toast

我是android开发的新手。我试图使用以下代码从片段中显示Toast:

Toast.makeText(this, "count is " + count, Toast.LENGTH_SHORT).show();

但是我在第一个参数中遇到了问题。有人可以帮忙吗?

5 个答案:

答案 0 :(得分:2)

您可以使用getActivity(),它返回与片段关联的活动。 活动是一个上下文(因为活动扩展了上下文)。

所以你的代码将是这样的:

Toast.makeText(getActivity(), "count is " + count, Toast.LENGTH_SHORT).show();

答案 1 :(得分:1)

1)您可以使用 getActivity(),而不是使用关键字。代码如下所示,

Toast.makeText(getActivity(), "Count is" + count, Toast.LENGTH_SHORT).show();

答案 2 :(得分:0)

使用return Array.from(arguments).join('§') + '§';

getActivity()

答案 3 :(得分:0)

如果您看到makeText类的方法Toast的签名,您可以看到所需的第一个参数是上下文。

片段不是Context的子类,因此使用this关键字传递Fragment对象。

您必须使用getActivity()getContext()方法。

Toast.makeText(getActivity(), "count is " + count, Toast.LENGTH_SHORT).show();

如果您想了解差异请阅读此帖What is the difference between this getcontext and getactivity

答案 4 :(得分:0)

覆盖片段 onAttach(上下文)方法,并为所有需要上下文的调用存储上下文

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();`
  }    
}