2012-05-01 10 views
6

Sto affrontando un problema di impostazione del testo da TextView in Android mio codice è:Come impostare il testo di TextView?

public class Main extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Button button = (Button) findViewById(R.id.button1); 
     final TextView text = (TextView) findViewById(R.id.textView1); 
     final EditText input = (EditText) findViewById(R.id.editText1); 
     final String string = input.getText(); 
     button.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       text.setText(string);     
      } 
     }); 
    } 
} 

se scrivo

final Editable string = input.getText(); 

allora funziona ..... !!!!

Ora voglio inviare i dati di EditText al prossimo Activity in questo modo:

public class Main extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Button button = (Button) findViewById(R.id.button1); 
     final TextView text = (TextView) findViewById(R.id.textView1); 
     final EditText input = (EditText) findViewById(R.id.editText1); 
     final Editable string = input.getText(); 
     button.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       Intent intent = new Intent(Main.this, Second.class); 
       intent.putExtra("thetext", string); 
       startActivity(intent); 
      } 
     }); 
    } 
} 

e in Second.java classe I get StringExtra in questo modo:

public class Second extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.second); 

     TextView text = (TextView) findViewById(R.id.textView2); 
     String string = getIntent().getExtras().getString("thetext", "not found"); 
     text.setText(string); /// Here the text is not shown but the default message "not found" is set to `TextView` 
    } 
} 

Per favore mi dia modo di procedere in sviluppo.

risposta

3

Penso che il problema sia che stai effettivamente mettendo un "Modificabile" nell'intento, non in una String. Anche se vicini, non sono la stessa cosa. Se youString() il tuo Modificabile per ottenere un oggetto String e lo metti nell'intento, dovresti essere in grado di farlo tornare indietro con getString come stai facendo.

+0

grazie Brayden che era il problema che ho sopra venuto esso ... –

5

Il problema dovrebbe essere, si sta inviando Editable, non String. Prova questo:

final String string = input.getText().toString(); 
1

provare qualcosa di simile:

public class Main extends Activity { 
    EditText input; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     TextView text = (TextView) findViewById(R.id.textView1); 
     input = (EditText) findViewById(R.id.editText1); 

     Button button = (Button) findViewById(R.id.button1); 
     button.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       Intent intent = new Intent(Main.this, Second.class); 
       intent.putExtra("thetext", input.getText().toString()); 
       startActivity(intent); 
      } 
     }); 
    } 
} 

(Suggerimento: Il modo più semplice per inviare il codice è quello di incollare il codice, selezionarlo e premere Crtl + k per il rientro/formattarla .)

0

Secondo i documenti android, il nome della stringa inserita negli extra deve includere un prefisso pacchetto ... cioè som.arshay.dev.thetext In secondo luogo, getExtras() restituisce un pacchetto, che non è quello che hai aggiunto. È necessario getStringExtra(name)

0

In questa linea uso

final String string = input.getText().toString(); 

invece di

final String string = input.getText(); 
2
 private TextView mTextView; 
    private String mString; 

mTextView = (TextView) findViewById(R.id.tv); 
mString = "hello everyone ! how r u?"; 
mTextView.setText(mString); 
Problemi correlati