Domanda

Voglio che il mio listItem risponda ancora onListItemClick() Ma inoltre voglio un'immagine extra in un Raw per avere il suo evento di clic. Il modo classico, definendo onClickListener Perché l'immagine non funziona. Che cosa Ho scoperto che devo definire il mio elenco e sovrascrivere getView() metodo. Ho bloccato la definizione di una nuova classe di adattatore, non ho mai usato un adattatore personalizzato. Voglio navigare attraverso le schede, onlistItemClick () Vai alla scheda 1 e su ImageClick Vai alla scheda 2. Funziona per onListItemClick() Ma quando aggiungo l'evento del secondo clic per l'immagine, l'app si blocca con NullpointerException su mySimpleAdapter.getView (). Qualsiasi aiuto sarà apprezzato. Grazie.

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);
   }
 }
È stato utile?

Soluzione

Modifica la riga sotto da:

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

a

ImageView image = (ImageView)view.findViewById(R.id.btn);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top