2011-09-13 13 views
7

La pregunta es como se puede ver que no puedo establecer el valor de edittext de forma dinámica antes de showDialog().cómo configurar un texto en un texto de edición que está en un cuadro de diálogo?

import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.Dialog; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.TelephonyManager; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.TextView; 


public class MainActivity extends Activity { 
private static final int DIALOG_TEXT_ENTRY = 7; 

private int user_id; 
private int dialogChoice; 
private String mobileNum; 
private EditText input2 ; 
private EditText input1 ; 
public TextView textView; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.alert_dialog_text_entry); 
    TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 
    mobileNum =tm.getLine1Number(); 
    // input1.setText(mobileNum); 
    textView.setText("hello"); 
    showDialog(DIALOG_TEXT_ENTRY); 

} 
@Override 
protected Dialog onCreateDialog(int i) { 


    switch (i) { 

    case DIALOG_TEXT_ENTRY: 
      LayoutInflater factory = LayoutInflater.from(this); 
      final View textEntryView = factory.inflate(R.layout.alert_dialog_text_entry, null); 
      input2 = (EditText) textEntryView.findViewById(R.id.number_edit); 
      input1 = (EditText) textEntryView.findViewById(R.id.username_edit); 
      textView = (TextView) textEntryView.findViewById(R.id.username_view); 
      return new AlertDialog.Builder(MainActivity.this) 
       // .setIconAttribute(android.R.attr.accountType) 
       .setTitle(R.string.alert_dialog_text_entry) 
       .setView(textEntryView) 
       .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 
          Intent i = new Intent(MainActivity.this, IccActivity.class); 
          startActivity(i); 
         /* User clicked OK so do some stuff */ 
        } 
       }) 
       .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 

         /* User clicked cancel so do some stuff */ 
        } 
       }) 
       .create(); 
    } 
    return null; 
} 

}

textView.setText("hello"); this line kills the app. 

gracias de antemano.

Respuesta

1

debe poner esta línea textView.setText("hello"); en el método onCreateDialog() ya que está configurando el valor antes de que se inicialice.

+0

Gracias. funciona. Estaba intentando asignar un valor antes para obtener una referencia. – akd

+0

Ahora debe aceptar la respuesta, ya que fluirá sin respuesta –

1

No ha inicializado textView. Es necesario esto en su onCreate() antes de hacer la textView.setText()

textView = (TextView) textEntryView.findViewById(R.id.username_view);

0

supongo que está recibiendo NullPointerException? Primero debe ser su campo 'textView'.

0

encuentra el texto TexView que está en el cuadro de diálogo y establecer el texto de la TextView Prueba este link

Cuestiones relacionadas