Android 为什么onClickListener在我的ViewPager框架中不工作
所以基本上我有一个viewpager,它的片段是动态添加和删除的。我试图做的是在片段中设置onClick函数,并做一些与该片段相关的事情。 下面是我的代码 MainFragment.javaAndroid 为什么onClickListener在我的ViewPager框架中不工作,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,所以基本上我有一个viewpager,它的片段是动态添加和删除的。我试图做的是在片段中设置onClick函数,并做一些与该片段相关的事情。 下面是我的代码 MainFragment.java public class MainFragment extends Fragment implements View.OnClickListener { private static final String ARG_LAYOUT="layout"; private QuoteData quoteData;
public class MainFragment extends Fragment implements View.OnClickListener {
private static final String ARG_LAYOUT="layout";
private QuoteData quoteData;
private String textTospeak;
private Speaker speaker;
//Returns an Instance of fragment
static Fragment newInstance(int layoutId, QuoteData quoteData) {
Fragment result=new MainFragment();
//quoteData = quoteDat;
Bundle args=new Bundle();
args.putInt(ARG_LAYOUT, layoutId);
args.putString("quote", quoteData.getQuote());
args.putString("author", quoteData.getAuthorName());
args.putString("imgurl", quoteData.getAuthorName());
result.setArguments(args);
return(result);
}
public MainFragment(){}
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View fragmentView = inflater.inflate(getArguments().getInt(ARG_LAYOUT),container, false);
TextView textview = (TextView)fragmentView.findViewById(R.id.quotetext);
String text = (String)getArguments().get("quote") +"\n\t\t\t"+getArguments().get("author");
textview.setText(text);
ImageView imageView = (ImageView) fragmentView.findViewById(R.id.speak);
imageButton.setOnClickListener(this);
return(fragmentView);
}
@Override
public void onClick(View v) {
//speak();
Toast.makeText(v.getContext(),"Show me something", Toast.LENGTH_SHORT);
}
}
然后,我在片段的xml中使用了OnClick属性,并在MainActivity中创建了一个函数,这也不起作用
我错过了什么 替换:
@Override
public void onClick(View v) {
//speak();
Toast.makeText(v.getContext(),"Show me something", Toast.LENGTH_SHORT);
}
与:
试着在toast上调用.show(),如果是这样的话,那会很有趣-同时在那里放一个log语句too@SaikCaskey哈哈哈,是的,就是这样!这让我觉得自己真的很愚蠢,哈哈
@Override
public void onClick(View v) {
//speak();
if(v.getId() == imageButton.getId()){
Toast.makeText(v.getContext(),"Show me something", Toast.LENGTH_SHORT).show();
}
}