2012-10-08 5 views
0

J'apprends à programmer sous Android et je suis resté avec ça ... Quelqu'un devrait savoir comment rendre les éléments de la liste cliquables? Je vais faire une nouvelle vue en passant le paramètre id ...setOnItemClickListener custom Listview

Merci beaucoup.

Ceci est mon code actuel:

public class ListaLugares extends ListActivity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_lista_lugares); 
    ArrayList<Lugar> Lugares = getItems(); 
    setListAdapter(new LugarAdapter(this, R.layout.lista_item, Lugares)); 
} 

public ArrayList<Lugar> getItems() { 
    DatabaseHandler db = new DatabaseHandler(this); 
    ArrayList<Lugar> listaLugares = db.getAllLugares2(); 
    db.close(); 
    return listaLugares; 
} 

private class LugarAdapter extends ArrayAdapter<Lugar> { 

    private ArrayList<Lugar> items; 

    public LugarAdapter(Context context, int textViewResourceId, ArrayList<Lugar> items) { 
     super(context, textViewResourceId, items); 
     this.items = items; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View v = convertView; 
     if (v == null) { 
      LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.lista_item, null); 
     } 
     Lugar lugar = items.get(position); 
     if (lugar != null) { 
      TextView tnombre = (TextView) v.findViewById(R.id.nombre); 
      TextView tdescripcion = (TextView) v.findViewById(R.id.descripcion); 
      if (tnombre != null) { 
       tnombre.setText(lugar.getNombre()); 
      } 
      if (tdescripcion != null) { 
       tdescripcion.setText(lugar.getDescripcion()); 
      } 
     } 
     return v; 
    } 
} 

}

+0

I Je suis assez sûr que les éléments sont cliquables par défaut. Vous devriez simplement définir 'OnItemClickListener' pour votre ListView et c'est tout. –

Répondre

3

Vous pouvez remplacer onListItemClick au sein de votre classe, par exemple, comme dans l'exemple, vous pouvez appeler une autre activité:

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    Bundle positionBundle = new Bundle(); 
    positionBundle.putInt("position", position); 
    Intent i = new Intent(this, MyOtherActivity.class); 
    i.putExtras(positionBundle); 
    startActivity(i); 
} 
Questions connexes