为什么EditText的setText()不起作用?

时间:2013-12-07 02:28:04

标签: android android-edittext settext

我想在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,但不是也工作。 逻辑上有什么问题吗?谢谢你的阅读。

2 个答案:

答案 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();