0

リストアイテムが引き続き応答するようにしonListItemClick()たいのですが、さらに、未加工の追加の画像に独自のクリックイベントを持たせたいのです。従来の方法でonClickListenerは、画像の定義は機能しません。私が見つけたのは、独自のlistadapterとoverridegetView()メソッドを定義する必要があるということです。新しいアダプタクラスの定義をロックしました。カスタムアダプタを使用したことはありません。タブ間を移動したいのですが、onListItemClick()はタブ1に移動し、ImageClickはタブ2に移動します。これは機能しますonListItemClick()が、画像の2番目のクリックイベントを追加すると、MySimpleAdapter.getView()でNullPointerExceptionが発生してアプリがクラッシュします。どんな助けでもありがたいです。ありがとう。

public class ListaActivity extends ListActivity {

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list);

    MySimpleAdapter adapter = new MySimpleAdapter(this, elem, R.layout.list_item,
            new String[]{"name","number","address"}, new int[]{R.id.name,R.id.num,R.id.adr});
    setListAdapter(adapter);
   }
    public class MySimpleAdapter extends SimpleAdapter{
    Context context;
    //Activity activity;
public MySimpleAdapter(Context context, ArrayList<HashMap<String, String>> elements,int layout, String [] from, int [] to ){
        super(context,el,layout,from,to);
            this.context = context;
            //this.activity = (Activity) context;
    }

    @Override
    public View getView(int position,View convertView, ViewGroup parent){
        View view = super.getView(position, convertView, parent);
        ImageView image = (ImageView)findViewById(R.id.btn);
        image.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                int tab=2;
                MyTabActivity.switchToTab(tab);
            }
        });
        return view;
    }   


@Override
protected void onListItemClick(ListView l, View v, int position, long id){
     int tab = 1;
     MyTabActivity.switchToTab(tab);
   }
 }
4

1 に答える 1

1

以下の行を次の行から変更します。

ImageView image = (ImageView)findViewById(R.id.btn);

ImageView image = (ImageView)view.findViewById(R.id.btn);
于 2011-12-06T11:20:32.450 に答える