我想在AlertDialog中的一个EditText中放一个字符串,它位于onItemClick Listener中,带有ListVIew.Here是代码的一部分
dialogbuilder= new AlertDialog.Builder(this)
.setTitle(R.string.title_connect_dialog)
.setView(getLayoutInflater().inflate(R.layout.dialog_connect,null))
.setPositiveButton("Connect", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.create();
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View view = inflater.inflate(R.layout.dialog_connect, null);
edit1 = (EditText)view.findViewById(R.id.devicename);
edit2 = (EditText)view.findViewById(R.id.deviceadd);
private AdapterView.OnItemClickListener mDeviceClickListener = new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View v, int arg2, long arg3) {
String info = ((TextView) v).getText().toString();
name = info.substring(0,info.length() - 18);
address = info.substring(info.length() - 17);
dialogbuilder.show();
edit1.setText(name);
edit2.setText(address);
}
};
当我运行项目时,EditText中没有任何东西!它不起作用!但没有异常或错误。我试过只在XML文件中设置文本可以工作。我用TextView替换EditText,但不是也工作。 逻辑上有什么问题吗?谢谢你的阅读。
答案 0 :(得分:1)
用作访问视图表单对话框布局的视图实例,您在setView
方法中传递了AlertDialog.Builder
更改:
.setView(getLayoutInflater().inflate(R.layout.dialog_connect,null))
到
.setView(view)
修改强>
或者为了访问视图而不是再次膨胀布局,您应该使用dialogbuilder
实例将EditText初始化为:
edit1 = (EditText)dialogbuilder.findViewById(R.id.devicename);
edit2 = (EditText)dialogbuilder.findViewById(R.id.deviceadd);
答案 1 :(得分:1)
您在设置文字
之前显示Dialog
dialogbuilder.show();
edit1.setText(name);
edit2.setText(address);
尝试更改
edit1.setText(name);
edit2.setText(address);
dialogbuilder.show();