2016-08-02 33 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 –