使用AlertDialog输入动态更新TextView值

时间:2016-08-02 17:50:53

标签: android textview android-alertdialog

我的应用中有很多布局的Textview ID。当alertDialog对用户显示时,我希望他输入的值更新Textview值。 我已经尝试了下面的代码,但是当我进入其他布局时,TextView不会更新。

请给我一个解决方案。

       mlnCurrency = (RelativeLayout) findViewById(R.id.lncurrency);


    mlnCurrency.setOnClickListener(new View.OnClickListener() {
                                       @Override
                                       public void onClick(View v) {
                                           mtvdevicelabel = (TextView) findViewById(R.id.tvdevicelabel);



                                           AlertDialog.Builder builder = new AlertDialog.Builder(SettingActivity.this);
                                           builder.setTitle("Title");

                                           final EditText input = new EditText(SettingActivity.this);

                                           input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                                           builder.setView(input);


                                           builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                               @Override
                                               public void onClick(DialogInterface dialog, int which) {
                                                   m_Text = input.getText().toString();
                                                   mtvdevicelabel.setText(m_Text );
                                               }
                                           });
                                           builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                                               @Override
                                               public void onClick(DialogInterface dialog, int which) {
                                                   dialog.cancel();
                                               }
                                           });

                                           builder.show();


                                       }
                                   }
    );

2 个答案:

答案 0 :(得分:0)

这是因为您的片段在其他UIThread中运行与您的Activity完全不同,您应该在更新文本时使用调用delegateMethod的委托模式。你也可以使用EventBus或Otto,或者使用RxJava for android。

答案 1 :(得分:0)

试试这个:

 alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        changeName();
                }
        );


public void changeName()

{

//DO update
}