我有一个片段:吐司的onClick方法中的片段
public class FragmentSocial extends Fragment implements ActionBar.TabListener, OnClickListener
{
private Fragment mFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setContentView(R.layout.fragment_social);
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// relevant code...
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// relevant code...
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
public void onClick(View v) {
switch(v.getId())
{
case R.id.imgBtnFB:
Toast.makeText(this, "FB pressed", Toast.LENGTH_LONG).show();
break;
case R.id.imgBtnTwitter:
Toast.makeText(this, "Twitter pressed", Toast.LENGTH_LONG).show();
break;
}
}
我在fragment_social
布局的几个图像按钮。现在我只想做一个Toast消息来查看按下了哪个按钮。但是,如果我使用this
作为上下文,我收到此错误消息: 类型Toast中的方法makeText(Context,CharSequence,int)不适用于参数(FragmentSocial,String,int) 我试过将this
更改为FragmentSocial.this
,更改为FragmentSocial.this.getActivity()
,试图创建private Context mContext
并将其实例化为mContext = (I tried various options here)
内部的onCreate方法 - 但没有任何效果。我要么没有错误信息,也没有看到吐司,或者有其他错误。
那么如何在这里创建一个Toast?
谢谢!
你的意思是这样的:'Toast.makeText(getActivity()getBaseContext(), “FB按下” Toast.LENGTH_LONG) .show();'?试了一下,仍然没有工作......还尝试了'Toast.makeText(FragmentSocial.this.getActivity()。getBaseContext(),“FB pressed”,Toast.LENGTH_LONG).show();' - 没有工作,没有看到吐司。 – Igal 2013-03-12 14:51:15
没错。这应该工作。将Log.d(“test”,“test”)放入onClick()中,并查看Logcat中是否有消息。那么你会知道你的onClick()方法是否被调用。 – 2013-03-12 14:54:44
Nop,我没有看到日志消息。猜测我在这里做错了什么......我也尝试在onCreate方法中做这样的事情:'findViewById(R.id.imgBtnFB).setOnClickListener(this);'但我甚至没有'findViewById '可用于某种原因的方法。 – Igal 2013-03-12 16:59:20