0

Android'de dolaşabileceğiniz bir dizi iletişim menüsü oluşturmaya çalışıyorum. (Temelde Android'de bir USSD etkileşimini bozmak). Her iletişim kutusu numaralandırılmış seçeneklerin bir metin görüntüleme menüsü, kullanıcının kendi numara seçimini girmesi için bir EditText görünümü ve İptal ve Gönder (bir sonraki adıma geçmek için) olmak üzere iki düğme.Özel düzen içindeki metni dinamik olarak güncelle İletişim Kutusu, NPE - Android

İlk ana menü iletişim penceremi istediğim gibi gösterebiliyor olsam da, iletişim penceremi dinamik olarak güncelleştirmek için çok fazla sorun yaşıyorum. Metni ayarlamak için TextView aramaya çalıştığımda, bana bir NPE veriyor ve neden emin değilim! İşte

Etkinliğime başlangıç ​​kodudur

TextView txtContent; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_menu); 
} 

protected void onStart() { 
    super.onStart(); 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    // Get the layout inflater 
    LayoutInflater inflater = this.getLayoutInflater(); 

    // Inflate and set the layout for the dialog 
    // Pass null as the parent view because its going in the dialog layout 
    builder.setView(inflater.inflate(R.layout.main_menu_dialog, null)) 
      // Add action buttons 
      .setPositiveButton(R.string.send, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
        // Send number to next dialog 
        FirstTimeUse(); 
       } 
      }) 
      .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        // End session 
       } 
      }); 
    AlertDialog dialog = builder.create(); 
    TextView txtContent = (TextView)findViewById(R.id.main_menu_options); 
    txtContent.setText(R.string.MainMenuText); 
    dialog.show(); 

} 

(iletişim start üzerine hemen açılır) Ve şu anda burada ana menü olarak adlandırılan jenerik iletişim görünümü (için düzen olmakla olmak değiştirildi olacak Bunu işe alabiliyorsam jenerik).

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference 
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2411) 
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2474) 

Hiçbir şey:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
<TextView 
    android:id="@+id/main_menu_options" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="16dp" 
    android:layout_marginLeft="4dp" 
    android:layout_marginRight="4dp" 
    android:layout_marginBottom="4dp" /> 
<EditText 
    android:id="@+id/choice" 
    android:inputType="textShortMessage" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="4dp" 
    android:layout_marginLeft="4dp" 
    android:layout_marginRight="4dp" 
    android:layout_marginBottom="16dp" /> 

ben bu çalıştırdığınızda, bu hatayı alıyorum: Ben dinamik koymak istiyorum çünkü TextView'un, şu anda herhangi bir metin içermiyor Denedim çalışıyorum, bu yüzden herhangi bir yardım takdir edilecektir! Teşekkür ederim!

cevap

2

bu deneyin:

View dialogView = inflater.inflate(R.layout.main_menu_dialog, null); 
builder.setView(dialogView) 
... 
TextView txtContent = (TextView) dialogView.findViewById(R.id.main_menu_options); 
txtContent.setText(R.string.MainMenuText); 
+0

Hey, bu çalıştı! Çok teşekkür ederim!! Neden işe yaradığını biliyor musun? Android Dialog eğiticilerinden doğrudan gelen bir görünüm ve yukarıda yaptığım şeyler arasındaki fark nedir? – notchopra

+0

Etkinlik (veya parça) görünümü hiyerarşisinde bir metin görünümü arıyordunuz. Ancak iletişim kutusunun kendi hiyerarşi görünümü vardır (gösterilecek ayrı bir pencere bile olsa). –

+0

Anladım. Tekrar teşekkürler! – notchopra