2016-05-23 8 views
0

i diesen Code haben, der von einer for-SchleifeAndroid Schluss Variable Fehler

void var_init(String to_match,String[][] temp) { 

     String t_match=to_match; 
    //problem in the below line 

     String t_replace = ""; 
     AlertDialog.Builder builder = new AlertDialog.Builder(RuleEngine.this); 
     builder.setTitle("Enter Value for"+t_match); 

// Set up the input 
     final EditText input = new EditText(RuleEngine.this); 

     builder.setView(input); 

// Set up the buttons 
     builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       t_replace = input.getText().toString(); 
      } 
     }); 
     builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.cancel(); 
      } 
     }); 

     builder.show(); 

Es gibt mir einen Fehler, dass die t_replace i von der inneren Klasse saccessed genannt wird und sollte als final deklariert werden, wenn ich hinzufügen das letzte mit t_replace-Variable dann sagt es, dass kann nicht zu einer endgültigen t_replace-Variable Wert zuweisen. Es schlägt mir vor, es in ein Element-Array zu konvertieren, das gut läuft, aber die zurückgegebenen Ergebnisse sind nicht das, was beabsichtigt ist.

+1

Verwendung t_replace als Instanzvariable direkt am Anfang der Klasse. Nicht in irgendeiner Methode. –

Antwort

0

Sie können global 't_replace'. Sie können final nicht ändern, da es sich um Konstanten handelt.

0

Sie können keine endgültigen Variablen in der Laufzeit ändern
du entfernen d Schlüsselwort final final EditText input = new EditText(RuleEngine.this);