[Android]调用另一个布局xml文件里面的button,并绑定OnClickListener监听器
2014-01-20 11:09
489 查看
做的项目中有一个功能是在当前的Activity生成一个view,然后点击view上的button,跳转到另外一个Activity,中间碰到了一些问题,现在归纳总结一下:
1.如何正确获取另一个Xml布局文件中的控件?
一般我们都会用findViewById来获取,但是该方法只能获取setContentView(R.layout.main)中参数main.xml上的控件,如果想获取另外一个xml文件上的控件,使用findViewById方法会报错。
我们可以用以下的方法来获取另一个XML(本文中是popup_window.xml)上的控件:
View view = View.inflate(getApplicationContext(), R.layout.popup_window null);
button = (Button)view.findViewById(R.id.button);
2.如何使得该button能触发OnClick定义的操作(本文中转到另一个Activtiy)
获得button以后,绑定上OnClickListener监听器,但是点击没有任何反应,此处困扰了我好久,后来终于发现原因所在:
setOnClickListener的操作不能放在OnCreate里面,一定要和创建该button所在的view的语句在一起:
button1setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
View view = View.inflate(getApplicationContext(), R.layout.popup_nevigation, null);
mpopupWindow = new PopupWindow(nevigationView);
mpopupWindow.setWidth(LayoutParams.MATCH_PARENT);
button 2 = (Button)view.findViewById(R.id.button2);
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("invoked!");
Intent intent = new Intent(getApplicationContext(),PharmcyInfo03Activity.class);
startActivity(intent);
}
});
}
1.如何正确获取另一个Xml布局文件中的控件?
一般我们都会用findViewById来获取,但是该方法只能获取setContentView(R.layout.main)中参数main.xml上的控件,如果想获取另外一个xml文件上的控件,使用findViewById方法会报错。
我们可以用以下的方法来获取另一个XML(本文中是popup_window.xml)上的控件:
View view = View.inflate(getApplicationContext(), R.layout.popup_window null);
button = (Button)view.findViewById(R.id.button);
2.如何使得该button能触发OnClick定义的操作(本文中转到另一个Activtiy)
获得button以后,绑定上OnClickListener监听器,但是点击没有任何反应,此处困扰了我好久,后来终于发现原因所在:
setOnClickListener的操作不能放在OnCreate里面,一定要和创建该button所在的view的语句在一起:
button1setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
View view = View.inflate(getApplicationContext(), R.layout.popup_nevigation, null);
mpopupWindow = new PopupWindow(nevigationView);
mpopupWindow.setWidth(LayoutParams.MATCH_PARENT);
button 2 = (Button)view.findViewById(R.id.button2);
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("invoked!");
Intent intent = new Intent(getApplicationContext(),PharmcyInfo03Activity.class);
startActivity(intent);
}
});
}
相关文章推荐
- Android 在XML里面共享同一布局文件
- android---xml---include用法(导入另一个XML文件到本布局中)
- android---xml---include用法(导入另一个XML文件到本布局中)
- android---xml---include用法(导入另一个XML文件到本布局中)
- android自定义Button,通过在XML布局文件里直接使用自定义参数
- android---xml---include用法(导入另一个XML文件到本布局中)
- android---xml---include用法(导入另一个XML文件到本布局中)
- android---xml---include用法(导入另一个XML文件到本布局中)
- Android 在xml布局配置文件中给Button按钮添加事件
- android---xml---include用法(导入另一个XML文件到本布局中
- android 在xml布局文件中 ImageView ImageButton出现警告
- android---xml---include用法(导入另一个XML文件到本布局中)
- android 复制文件到另一个文件夹里面
- Android性能优化之:XML布局文件优化
- Android XML文件布局各个属性详解
- 2.Android开发---xml布局文件中的常见属性总结
- android 入门xml布局文件
- android xml布局文件相关问题
- Android开发的xml布局文件属性总结
- Layout inflation在Android环境中是一个专业术语,用于表示某个XML资源布局文件被解析并转化成为一个层级的View对象的过程。