2011-07-01 11 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

、同じ名前が異なるパッケージを持つ2つのクラス.... View.OnClickListenerDialogInterface.OnClickListenerをいじりしています。あなたのクラスのリスナーはDialogInterface.OnClickListenerですが、View.OnClickListenerが欲しいと思います。実装をView.OnClickListenerに変更すると、問題が解決されます。

+0

私はそれを考えていたらいいのに、うまくいきました! –