我有一个正在现代化的应用程序。此过程的一个步骤是更改为基于片段的布局(使用支持库中的片段)。我将我的活动转换为片段,并且布局运行良好(使用 ViewPager,很酷的东西!)
我让我的活动实现 OnClickListener 来满足我所有的按钮按下需求。当然,我有新的 Fragment 化身做同样的事情,但看起来“onClick”永远不会受到打击。Fragments 是否有什么特别之处阻止它们以这种方式工作?
我有一个正在现代化的应用程序。此过程的一个步骤是更改为基于片段的布局(使用支持库中的片段)。我将我的活动转换为片段,并且布局运行良好(使用 ViewPager,很酷的东西!)
我让我的活动实现 OnClickListener 来满足我所有的按钮按下需求。当然,我有新的 Fragment 化身做同样的事情,但看起来“onClick”永远不会受到打击。Fragments 是否有什么特别之处阻止它们以这种方式工作?
只做一个
public class fragmentOne extends Fragment implements OnClickListener {
Button myButton;
@Override
public View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedinstanceState) {
View myView = inflater.inflate(R.layout.fragment_1, container, false);
myButton = (Button) myView.findViewById(R.id.myButton);
myButton.setOnClickListener(this);
return myView;
}
@Override
public void onClick(View v) {
// implements your things
}
}
很简单
我将重点使用 OnClick 操作进行全局访问,您必须这样做是您的项目,必须实现View.OnClickListener,然后覆盖方法 OnClick(),在OnCreateView()中必须这样做button_submit.setOnClickListener(这个); 对于您需要的视图,请参阅下面的代码以获得明确的答案,谢谢。
public class New_Project extends Fragment implements View.OnClickListener{
private View mView;
private Button button_submit;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_newproject, container,false);
button_submit=(Button)mView.findViewById(R.id.button_submit);
button_submit.setOnClickListener(this);
return mView;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_submit:
//do your stuff
break;
}
}
}
我想评论 Abhijit Chakra 的答案,但似乎我需要 50 次代表。对于那些想知道您是否不能使用 Abhijit 答案的人,这是因为:
public void OnClick(View v) {
// implements your things
}
您需要确保它是 onClick,而不是 OnClick。谢天谢地,Android Studio 内部错误消息来救援。
view.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
switch (v.getId()) {
case R.id.imgView1:
Toast.makeText(getActivity(), "Long pressing", Toast.LENGTH_SHORT).show();
updateImage();
break;
case R.id.imgView2:
Toast.makeText(getActivity(), "Long pressing", Toast.LENGTH_SHORT).show();
updateImage();
break;
case R.id.imgView3:
Toast.makeText(getActivity(), "Long pressing", Toast.LENGTH_SHORT).show();
updateImage();
break;
default:
break;
}