安卓Fragment中的Button如何设置事件处理?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓Fragment中的Button如何设置事件处理?相关的知识,希望对你有一定的参考价值。
如果Fragment1里面有多个Button,要怎么为所有Button设置监听,当点击不同的Button时,跳转到相应的Fragment中去?
对Fragment1 里面的两个button定义接口
对应的Fragment2 和Fragment3 如下:
MainActivity实现了两个接口,回调如下
但程序运行时只对其中一个Button的点击有响应,要怎么修改呢?
首先,你需要重写Fragment类的onCreateView方法,并找到根View,因为你的按钮是属于根View的。然后对根View使用findViewById()方法找到按钮,并为按钮设置监听器。
最後,别忘记返回根View。
代码如下:
@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
View rootView = inflater.inflate(R.layout.fragment, container, false);
Button button = (Button) rootView.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
//处理监听事件
);
return rootView;
希望以上内容能帮助到您,满意请采纳,欢迎追问!
参考技术A Button的事件处理和Fragment没有关系.通常地 fragment做为宿主activity UI的一部分, 被作为activity整个view hierarchy的一部分被嵌入.
Button 的事件设置:
Button buttontest;
buttontest = (Button) findViewById(R.id.button1);
buttontest.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
// TODO Auto-generated method stub
Log.i("TEST", "button onClick");
); 参考技术B 那是因为你的activity实现了两个接口,所以在onClick里面的判断就不会进到else里面吧,这样就只是onPhotoClick调用了,另外一个没有调用。追问
那请问怎么修改啊?..
追答你只要定义一个接口,Activity 实现这个接口
public interface OnButtonClickListenerpublic void onPhotoClick(View view);
public void onSettingBackClick(View view);
然后再fragment的button点击事件里面根据button的id来判断调用哪一个方法就好了
@Overridepublic void onClick(View view)
if(view.getId()==R.id.btn_photo)
if(getActivity() instanceof OnButtonClickListener)
((OnButtonClickListener)getActivity).onPhotoClick(view);
else if ……
本回答被提问者和网友采纳 参考技术C 那是因为你的activity实现了两个接口,所以在onClick里面的判断就不会进到else里面吧,这样就只是onPhotoClick调用了,另外一个没有调用。
android Fragment下的listview 怎么样可以设置单击事件和长按事件
参考技术A 不用设listview的点击事件,在listview的xml布局文件中加上android:descendantFocusability="blocksDescendants"这样每个item的button的点击事件就可以获取,你只要在adapter中写相应控件的点击事件就行了以上是关于安卓Fragment中的Button如何设置事件处理?的主要内容,如果未能解决你的问题,请参考以下文章
求教android studio大神:用fragment写一个导航栏,在每个fragment里面加listview,能实现点击事件