2011-09-13 15 views
7

質問は、showDialog()の前にedittextの値を動的に設定できないことがわかります。予めダイアログボックスにある編集テキストにテキストを設定するにはどうすればいいですか?

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. 

おかげ。

答えて

1

この行は、初期化される前に値を設定しているので、textView.setText("hello");onCreateDialog()にする必要があります。

+0

はありがとう、これを試してみてくださいのTextView のテキストを設定します。できます。私はそれへの参照を取得する前に値を割り当てようとしていました。 – akd

+0

答えが未回答のまま流れているので、これを受け入れるべきです –

1

textViewを初期化していません。あなたはtextView.setText()

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

0

を行う前に、私はあなたがNullPointerExceptionが取得していると思います)(あなたのonCreateでこれを必要ですか?最初に 'textView'フィールドを使用してください。

0

がダイアログにあるTexViewのテキストを検索し、link

関連する問題