2016-03-06 47 views
0

我是android开发中的新手。我试图展现在吐司使用片段下面的代码是我从其他网站获得:无法显示使用此片段的烤面包

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

但我在第一个参数得到一个问题。谁能帮忙?

回答

2

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

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

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

使用getActivity()

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

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

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

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

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

如果你想知道其中的差别阅读这篇文章What is the difference between this getcontext and getactivity

1

1)您可以使用getActivity()的而不是使用关键字。该代码将像下面,

Toast.makeText(getActivity(), "Count is" + count, Toast.LENGTH_SHORT).show(); 
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();` 
    }  
} 
相关问题