2011-07-01 42 views
0

內設置onClickListener當我們爲了顯示彈出對話框子類。此對話框包含一個ListView,因此我也有一個內部類(在對話框中),它是BaseAdapter的子類。ClassCastException異常對話框子類

我想設置onClickListener文字就是我的名單之內,但我一直在setOnClickListener越來越ClassCastException異常(見下面的代碼)。

public class CustomDialog extends Dialog 
{ 
MyAdapter adapter = null; 

public CustomDialog(Context context) 
{ 
    super(context); 
    setContentView(R.layout.custom_popup); 

    ListView listView = (ListView) findViewById(android.R.id.list); 
    adapter = new MyAdapter(context); 
    listView.setAdapter(adapter); 
} 


    public class MyAdapter extends BaseAdapter implements OnClickListener 
    { 
     @Override 
     public View getView(int arg0, View arg1, ViewGroup arg2) 
     { 
       .... 
      TextView groupText = (TextView)v.findViewById(R.id.mytext); 
      mytext.setOnClickListener((android.view.View.OnClickListener) this); //crashes here 
       .... 
     } 

     @Override 
     public void onClick(DialogInterface arg0, int arg1) 
     { 
     } 
    } 
} 

回答

0

在這種情況下,你與具有相同名稱但不同的封裝.... View.OnClickListenerDialogInterface.OnClickListener兩類搞亂。你在班上的聽衆是DialogInterface.OnClickListener,但你想要一個View.OnClickListener。更改您的工具使用View.OnClickListener,這將解決您的問題。

+0

哦拍我希望我想到了,謝謝它的工作! –