2013-08-30 39 views
0

我有一個按鈕,帶來一個OK按鈕的對話框,當我點擊確定按鈕時,我得到一個nullpointerexception。有誰知道什麼是錯的?nullpointerexception on setOnClickListener

這是我的java代碼。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mylist); 

    myListView = (ListView)findViewById(R.id.list); 
    new GetStuff().execute(); 

    Button importButton = (Button)findViewById(R.id.doButton); 
    importButton.setEnabled(false); 
    importButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      final Dialog pwdDialog = new Dialog(context); 
      pwdDialog.setContentView(R.layout.pwdentry); 
      pwdDialog.setTitle("Enter password"); 
      TextView pwdText = (TextView)pwdDialog.findViewById(R.id.pwdText); 
      pwdText.setText("Enter password"); 
      Button okBut = (Button)findViewById(R.id.okBut); 
      okBut.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        pwdDialog.dismiss(); 
       } 
      }); 
      pwdDialog.show(); 
     } 
    }); 
} 

這裏的XML文件

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/pwdText" 
     android:layout_width="fill_parent" 
     android:layout_height="50dip" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:text="Enter password" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/pwdEntry" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/pwdText" 
     android:ems="10" 
     android:inputType="numberPassword" > 

     <requestFocus /> 
    </EditText> 

    <Button 
     android:id="@+id/okBut" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="100px" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/pwdEntry" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="5dp" 
     android:layout_marginRight="5dp" 
     android:text="OK" /> 

</RelativeLayout> 

謝謝!

+0

pwdDialog.setContentView(R.layout.pwdentry); 這不會膨脹用戶界面,直到你調用Show(),只有在你應該訪問它的子視圖 –

回答

2

的問題是okBut將爲空

Button okBut = (Button)findViewById(R.id.okBut); 

你需要使用ID,R.id.okBut從主佈局R.layout.mylist把這作爲

Button okBut = (Button)pwdDialog.findViewById(R.id.okBut); 
+0

謝謝!完全錯過了。 – user1118764

0

這裏要檢索的按鈕。

Button okBut = (Button)findViewById(R.id.okBut); 
+0

謝謝!就是這樣。 – user1118764

相關問題