2011-09-13 5 views
7

Câu hỏi là bạn có thể thấy rằng tôi không thể đặt giá trị của edittext động trước showDialog().cách đặt văn bản thành Edittext trong hộp thoại?

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. 

cảm ơn trước.

Trả lời

1

bạn nên đặt dòng này textView.setText("hello"); vào phương thức onCreateDialog() khi bạn đặt giá trị trước khi được khởi tạo.

+0

Cảm ơn bạn. nó hoạt động. Tôi đã cố gắng để gán một giá trị trước khi để có được một tham chiếu đến nó. – akd

+0

Bây giờ bạn nên chấp nhận câu trả lời vì nó sẽ chảy như chưa được trả lời –

1

Bạn chưa khởi chạy textView. Bạn cần điều này trong onCreate() của bạn trước khi bạn làm các textView.setText()

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

0

Tôi đoán bạn đang nhận được NullPointerException? Trước tiên, bạn nên tính toán trường 'textView' của mình.

0

Tìm văn bản TexView đó là trong hộp thoại và thiết lập các văn bản của TextView Hãy thử điều này link