安卓Fragment中的Button如何设置事件处理?
如果Fragment1里面有多个Button,要怎么为所有Button设置监听,当点击不同的Button时,跳转到相应的Fragment中去?对Fragment1里面的两...
如果Fragment1里面有多个Button,要怎么为所有Button设置监听,当点击不同的Button时,跳转到相应的Fragment中去?
对Fragment1 里面的两个button定义接口
对应的Fragment2 和Fragment3 如下:
MainActivity实现了两个接口,回调如下
但程序运行时只对其中一个Button的点击有响应,要怎么修改呢? 展开
对Fragment1 里面的两个button定义接口
对应的Fragment2 和Fragment3 如下:
MainActivity实现了两个接口,回调如下
但程序运行时只对其中一个Button的点击有响应,要怎么修改呢? 展开
4个回答
展开全部
首先,你需要重写Fragment类的onCreateView方法,并找到根View,因为你的按钮是属于根View的。然后对根View使用findViewById()方法找到按钮,并为按钮设置监听器。
最後,别忘记返回根View。
代码如下:
@Override
public 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;
}
希望以上内容能帮助到您,满意请采纳,欢迎追问!
展开全部
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");
}
});
通常地 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");
}
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-11-30
展开全部
那是因为你的activity实现了两个接口,所以在onClick里面的判断就不会进到else里面吧,这样就只是onPhotoClick调用了,另外一个没有调用。
追问
那请问怎么修改啊?..
追答
你只要定义一个接口,Activity 实现这个接口
public interface OnButtonClickListener{
public void onPhotoClick(View view);
public void onSettingBackClick(View view);
}
然后再fragment的button点击事件里面根据button的id来判断调用哪一个方法就好了
@Override
public void onClick(View view){
if(view.getId()==R.id.btn_photo){
if(getActivity() instanceof OnButtonClickListener){
((OnButtonClickListener)getActivity).onPhotoClick(view);
}
}else if ……
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那是因为你的activity实现了两个接口,所以在onClick里面的判断就不会进到else里面吧,这样就只是onPhotoClick调用了,另外一个没有调用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询