setOnItemClickListener自定义Listview

时间:2012-10-08 16:11:20

标签: java android android-listview

我正在学习在android中编程而且我坚持这个...有人应该知道如何使列表中的项目可点击?我将通过传递id参数...

来创建一个新视图

非常感谢。

这是我的实际代码:

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;
    }
}

}

1 个答案:

答案 0 :(得分:3)

例如,您可以覆盖类中的onListItemClick,就像在示例中一样,您可以调用其他Activity:

@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);
}