2016-08-02 58 views
0

我在我的应用程序的许多布局中都有一个Textview ID。当alertDialog显示给用户时,我想让他输入的值更新Textview值。 我已经尝试了下面的代码,但是当我在其他人的布局中使用时,TextView不会更新。使用AlertDialog输入动态更新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(); 


             } 
            } 
    ); 
+0

那是因为你正在使用的视图只是containts您尝试更新TextViews之一。其余的人在别人的意见。 –

+0

@JonathanAste这是什么“他人的观点”?请解释:“当我在别人的布局”... – Shaishav

+0

@Aristide ..可以üPLZ上传屏幕截图,以便我们有更好的了解 – kumar

回答

0

这是因为你的片段在其他UIThread运行从您的活动完全diferent,你应该使用委托模式调用delegateMethod当你更新你的文字。您也可以使用EventBus或Otto进行此操作,或者使用RxJava进行android操作。

+0

请你能举一个代码的例子吗? –

0

试试这个:

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


public void changeName() 

{ 

//DO update 
} 
+0

仍然不好,布局更新一次,但当我是其他人布局。没有更新完成。 –

+0

你使用ListView或类似的东西? – AbelMorgan

+0

不,我有我的TextView在一个LinearLayout –