你好我想在sherlockfragment中创建一个点击监听器但是每次我点击它时都显示“view.class source not found”无论我做什么动作我都想用它开始一个意图改变活动
这是我的代码:
public class SafanTab extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.safantab, container, false);
}
public void onOverClick(View view) {
Intent myIntent = new Intent(view.getContext(), OverSafan.class);
startActivityForResult(myIntent, 0);
}
public void nProductenClick(View view) {
Intent myIntent = new Intent(view.getContext(), Over_Safan.class);
startActivityForResult(myIntent, 0);
}
public void onTwitterClick(View view) {
Intent myIntent = new Intent(view.getContext(), Over_Safan.class);
startActivityForResult(myIntent, 0);
}
}
我定义了布局xml中按钮的监听器:
android:onClick="OnOverClick"
我尝试了很长时间,并在网上搜索“未找到View.class源”但找不到任何解决我问题的方法。正如您在问题中所看到的,我正在使用ActionBarSherlock。
答案 0 :(得分:2)
您不会在片段中获得onOverClick回调。在onActivityCreated()方法中使用以下内容。
// Handle onclick
getView().findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// do something
}
});
有关更多选项,请参阅此问题:How to handle button clicks using the XML onClick within Fragments
修改强> 对于onCreateView,您可以执行以下操作:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_layout, container, false);
view.findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// do something
}
});
return view;
}
答案 1 :(得分:-1)
不确定这是否是问题,但我发现您的方法名称定义为:
public void onOverClick(View view)
但是在您指定的XML中:
android:onClick="OnOverClick"
字母“O”在xml中大写。