Estoy usando onListItemClick con simple_list_item_1

public class DrinkCategoryActivity extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ListView listDrinks = getListView();
        ArrayAdapter<Drinks> listAdapter = new ArrayAdapter<Drinks>(this,
                android.R.layout.simple_list_item_1,
                Drinks.drinks);

        listDrinks.setAdapter(listAdapter);

    }
    @Override
    public void onListItemClick(ListView listView, View itemview, int position, int id){
        Intent intent = new Intent(this, DrinkActivity.class);
        intent.putExtra(DrinkActivity.EXTRA_DRINKNO, id);
        startActivity(intent);
    }
}

Dice que onListItemClick nunca se usa

Cuando abro mi aplicación, no responde al clic. No quiero usar una nueva actividad de diseño.

Estoy usando una actividad de lista que no siempre requiere diseño

0
Advait Ghagare 27 feb. 2018 a las 10:48

4 respuestas

La mejor respuesta

Debe usar setOnItemClickListener

    setOnItemClickListener(new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
          Object listItem = list.getItemAtPosition(position);
       } 
    });
4
Arshad 27 feb. 2018 a las 09:20

Puedes probar a continuación

public class DrinkCategoryActivity extends Activity implements AdapterView.OnItemClickListener
{

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        setContentView(R.layout.activity_drink_category);

         ListView listDrinks = (ListView)findViewById(R.id.your_list_view_id);
    ArrayAdapter<Drinks> listAdapter = new ArrayAdapter<Drinks>(this,
            android.R.layout.simple_list_item_1,
            Drinks.drinks);

    listDrinks.setAdapter(listAdapter);
     listDrinks.setOnItemClickListener(this);
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id)
    {
        //Callback logic here for clicked items
    }

    ...
}
1
OmiK 27 feb. 2018 a las 08:31

Sólo tiene que añadir

public class DrinkCategoryActivity extends ListActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ListView listDrinks = getListView();
    ArrayAdapter<Drinks> listAdapter = new ArrayAdapter<Drinks>(this,
            android.R.layout.simple_list_item_1,
            Drinks.drinks);

    listDrinks.setAdapter(listAdapter);

    // Add this block
    listDrinks.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent(this, DrinkActivity.class);
            intent.putExtra(DrinkActivity.EXTRA_DRINKNO, id);
            startActivity(intent);
        }
    });
}

Eliminar

@Override
public void onListItemClick(ListView listView, View itemview, int position, int id){
    Intent intent = new Intent(this, DrinkActivity.class);
    intent.putExtra(DrinkActivity.EXTRA_DRINKNO, id);
    startActivity(intent);
}
0
Life John 27 feb. 2018 a las 08:15

Prueba esto

listDrinks.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
   } 
});
0
Navneet Krishna 27 feb. 2018 a las 07:52