ClassCastException при установке onClickListener в подклассе Dialog - PullRequest
0 голосов
/ 01 июля 2011

У меня есть подкласс Dialog для отображения всплывающего окна. Этот диалог содержит ListView, и поэтому у меня также есть внутренний класс (в диалоге), который подклассов BaseAdapter.

Я пытаюсь установить onClickListener для текста, который находится в моем списке, однако я продолжаю получать ClassCastException в setOnClickListener (см. Код ниже).

 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) 
        {
        }
     }
}

1 Ответ

0 голосов
/ 01 июля 2011

В этом случае вы работаете с двумя классами, которые имеют одинаковые имена, но разные пакеты .... View.OnClickListener и DialogInterface.OnClickListenerСлушатель в вашем классе - DialogInterface.OnClickListener, но вы хотите View.OnClickListener.Измените свой агрегат на использование View.OnClickListener, и это решит вашу проблему.

...