OnlistitemClick () + Imagen de clic en ListView
-
28-10-2019 - |
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);
}
}
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);