[英]How to add onClick in Fragment
Hello i want to add onClick option in a Fragment to a ImageView. 您好,我想在片段中添加onClick选项到ImageView。 I tried a few things but failed.
我尝试了一些尝试,但失败了。 Here is my Fragmet.java
这是我的Fragmet.java
public class Info extends Fragment{ 公共类信息扩展了片段{
public Info() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.info, container, false);
}
} }
Override 覆写
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
and use the view
object, which is the same View
you are returning in onCreateView
, to look for the ImageView on which you want to set your onClickListener
. 并使用
view
对象(与在onCreateView
中返回的View
相同)查找要在其上设置onClickListener
的ImageView。 Eg 例如
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
View imageView = view.findViewById(R.id.id_of_image_view);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
Instead of returning the view directly ,do this 与其直接返回视图,不如这样做
View v=inflater.inflate(R.layout.info, container, false);
you can then use v to find reference to your ImageViews 然后可以使用v查找对ImageViews的引用
ImageView iv=(ImageView)v.findViewById(R.id.imageview_id);
then set onClickListener as usual 然后像往常一样设置onClickListener
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//do something
}
});
You have to have an ImageView
in the layout R.layout.info.
您必须在
layout R.layout.info.
具有ImageView
layout R.layout.info.
If the ImageView
's id is ivInLayout
, you set an onClik
mehtod like this: 如果
ImageView
的id是ivInLayout
,则可以这样设置onClik
方法:
public class Info extends Fragment{
public Info() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.info, container, false);
ImageView iv = (ImageView) v.findViwById(R.id.ivInLayout);
iv.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(){
<What you want onClick on the image to do>
}
});
return v;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.