我有一個片段:吐司的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