2016-08-02 32 views
0

Ich habe eine Textview ID in vielen Layout in meiner App. Wenn der alertDialog dem Benutzer angezeigt wird, möchte ich, dass der von ihm eingegebene Wert den Wert für die Textansicht aktualisiert. Ich habe den Code unten versucht, aber wenn ich in anderen Layout gehe, wird die TextView nicht aktualisiert.Dynamisch TextView Wert mit AlertDialog Eingabe aktualisieren

Bitte geben Sie mir eine Lösung.

 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

Das ist, weil die Ansicht, die Sie gerade verwenden eine der Textviews containts, die Sie zu aktualisieren versuchen, zu. Der Rest von ihnen ist in anderen Ansichten. –

+0

@ JonathanAste Was ist das "andere Ansichten"? Bitte erklären: „Wenn ich in anderen werde Layout“ ... – Shaishav

+0

@Aristide .. könnte u plz Screenshot hochladen, so dass wir – kumar

Antwort

0

Dies liegt daran, Ihr Fragment in anderen UIThread völlig diferent von Ihrer Tätigkeit ausführen, sollten Sie die Delegaten Muster verwenden, um die delegateMethod aufrufe, wenn Sie Ihren Text aktualisieren. Sie könnten auch EventBus oder Otto für dieses oder RxJava für Android verwenden.

+0

Bitte könnten Sie ein Beispiel für Code geben? –

0

Try this:

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


public void changeName() 

{ 

//DO update 
} 
+0

Immer noch nicht in Ordnung, das Layout ist ein Update einmal, aber wenn ich andere Layout giong bin. Keine Aktualisierung durchgeführt. –

+0

verwenden Sie eine ListView oder etwas ähnliches? – AbelMorgan

+0

Nein, ich habe meine TextView in einem LinearLayout –