android 如何获取其它布局上的控件id

我建了一个类,两个布局文件MainActivity.javaactivity_main.xmlalter_dialog.xml其中MainActivity.java的布局... 我建了一个类,两个布局文件
MainActivity.java
activity_main.xml
alter_dialog.xml
其中MainActivity.java的布局文件是activity_main,我把alter_dlalog.xml渲染成了一个自定义的AlterDialog.
在alter_dialog.xml中有一个button,我给button加了一个id,如何在MainActivity中找到这个button的id,并且为他添加一个监听呢?
我用this.findViewById(R.id.xxx);找不到,会报空指针异常.
展开
 我来答
回忆的呻吟
2015-10-30 · TA获得超过155个赞
知道小有建树答主
回答量:162
采纳率:50%
帮助的人:69.8万
展开全部
兄弟你这是要干嘛?你是想给你dialog上的控件设置监听方法吗?你这样写肯定是获取不到的!你需要在你自定义的dialog中写入接口然后再activity中调用这个dialog才从写那dialog中的方法!来处理!
追问
额,这个怎么写呢?
可以举个例子吗?
跪谢!
追答
http://pan.baidu.com/s/1jGB6oSY   你自己打开这个下载了解压就能在eclipse中运行!你看效果吧!  

这是一个从底部弹出来的对话框!但是和你的效果是一样的!你注意看哪个interface哪个东西!在继承dialog哪个类里面

或者你给我一个效果图 我直接帮你搞定就是了!!
幻想流逝
推荐于2017-12-16 · TA获得超过1743个赞
知道大有可为答主
回答量:642
采纳率:75%
帮助的人:565万
展开全部
你是通过哪种方式自定义的AlterDialog呢?

如果是用了AlertDialog.Builder的setView方法,那你之前应该调用过Inflater吧,这时候你已经实例化了alter_dlalog.xml得到了一个view,用这个view.findViewById就行。
追问
可是,我的MainActivity实现了OnClickListener方法。
如何在onClick中添加监听呢?
我是想把所有的监听事件存放在一处。

@Override
public void onClick(View v) {
这里面该怎么填写呢?
}
追答

哦,这种情况我一般是这么搞的


public void onClick(View v) {
    switch(v.getId()){
    case R.id.button1:
        //button1的点击事件
        break;
    case R.id.button2:
        //button2的点击事件
        break;
    }
}


就是用过id来判断是哪个控件的点击事件。


不过Dialog和Activity其实是两码事,你可以把Dialog想象成一个迷你的Activity,就算你的Activity1实现了全局的onClick,但它依旧管不到Activity2(Dialog)上的控件。


你稍等下,我给你写个简单易懂的Demo。


见Demo,不过我没有让Activity实现onClickListener接口,而是自己new了一个。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式