安卓Fragment中的Button如何设置事件处理?

如果Fragment1里面有多个Button,要怎么为所有Button设置监听,当点击不同的Button时,跳转到相应的Fragment中去?对Fragment1里面的两... 如果Fragment1里面有多个Button,要怎么为所有Button设置监听,当点击不同的Button时,跳转到相应的Fragment中去?
对Fragment1 里面的两个button定义接口

对应的Fragment2 和Fragment3 如下:

MainActivity实现了两个接口,回调如下

但程序运行时只对其中一个Button的点击有响应,要怎么修改呢?
展开
 我来答
Macchiiatto
2015-07-17 · TA获得超过894个赞
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:134万
展开全部

首先,你需要重写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;
}

希望以上内容能帮助到您,满意请采纳,欢迎追问!

砍出平成第一斧58
2015-08-12 · TA获得超过1567个赞
知道大有可为答主
回答量:2321
采纳率:86%
帮助的人:1210万
展开全部
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");
}
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
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 ……
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baikewsp
2015-07-29 · TA获得超过1万个赞
知道小有建树答主
回答量:4588
采纳率:42%
帮助的人:689万
展开全部
那是因为你的activity实现了两个接口,所以在onClick里面的判断就不会进到else里面吧,这样就只是onPhotoClick调用了,另外一个没有调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式