Pregunta

Quiero que mi lista de listem sea responder a onListItemClick() Pero además quiero una imagen adicional en un evento RAW para su propio evento de clic. La forma clásica, definiendo onClickListener porque la imagen no funciona. Qué He descubierto que tengo que definir mi propia lista de listapter y anular getView() método. He bloqueado la definición de nueva clase de adaptador, nunca he usado un adaptador personalizado. Quiero navegar a través de pestañas, onlistitemClick () vaya a la pestaña 1 y en imageClick vaya a la pestaña 2. Funciona para onListItemClick() Pero cuando agrego el segundo evento de clic para la imagen, la aplicación se bloquea con NullPointerException en MySimpleArTapter.getView (). Cualquier ayuda será apreciada, gracias.

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);
   }
 }
¿Fue útil?

Solución

Cambiar a continuación en línea desde:

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

a

ImageView image = (ImageView)view.findViewById(R.id.btn);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top