如何将文本设置为对话框中的Edittext?

问题是你可以看到我无法在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. 

提前致谢。

你应该把这一行textView.setText("hello"); 进入onCreateDialog()方法,因为您在初始化之前设置了值。

您尚未初始化textView。 在执行textView.setText()之前,需要在onCreate textView.setText()

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

我猜你得到NullPointerException? 您应首先搜索“textView”字段。

find对话框中的TexView文本并设置TextView的文本尝试此链接