android开发中一个activity如何调用另一个xml中的控件

时间:2023-01-27 22:09:25

有时候,我们需在一个activity中使用另一个activity中的控件,这时候就不能直接findViewById,不然会报错指向空对象,这时就需要像下面这样做。

LayoutInflater factory = LayoutInflater.from(当前类.this);

View layout = factory.inflate(R.layout.你要获取的另一个XML, null);

TextView textview = (TextView) layout.findViewById(R.id.控件ID);

上面这样的方法仅限在activity或Fragment中引入,但是如果想引入弹出的自定义的dialog中的控件该怎么办呢?这里以使用dialog中的Edittext为例。

SettingDialog.java是我自定义的dialog,其中里面包含几个Editext。效果图如下:

android开发中一个activity如何调用另一个xml中的控件

这里我想在弹出这个dialog的Activity中使用dialog中的控件,那么应该这么办:

先在Activity中声明这个dialog

private SettingDialog settingDialog =new SettingDialog(this, R.style.MyDialog);//括号里面的是SettingDialog的构造器SettingDialog(Context context,int theme);

然后再activity声明想使用的dialog中的控件(这里我以“服务器IP地址的Editext为例”)

    private EditText server_ip;// 对话框的ip
   server_ip = (EditText) settingDialog.findViewById(R.id.server_ip);

这样就可以将Dialog中的控件获取到了,接下来就可以正常按照一般的控件进行操作了。