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);找不到,会报空指针异常. 展开
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);找不到,会报空指针异常. 展开
2个回答
展开全部
兄弟你这是要干嘛?你是想给你dialog上的控件设置监听方法吗?你这样写肯定是获取不到的!你需要在你自定义的dialog中写入接口然后再activity中调用这个dialog才从写那dialog中的方法!来处理!
追问
额,这个怎么写呢?
可以举个例子吗?
跪谢!
追答
http://pan.baidu.com/s/1jGB6oSY 你自己打开这个下载了解压就能在eclipse中运行!你看效果吧!
这是一个从底部弹出来的对话框!但是和你的效果是一样的!你注意看哪个interface哪个东西!在继承dialog哪个类里面
或者你给我一个效果图 我直接帮你搞定就是了!!
展开全部
你是通过哪种方式自定义的AlterDialog呢?
如果是用了AlertDialog.Builder的setView方法,那你之前应该调用过Inflater吧,这时候你已经实例化了alter_dlalog.xml得到了一个view,用这个view.findViewById就行。
如果是用了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了一个。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询