Я использую onListItemClick с 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);
    }
}

В нем говорится, что onListItemClick никогда не используется

Когда я открываю свое приложение, оно не реагирует на нажатия. Я не хочу использовать новый макет.

Я использую список действий, которые не всегда требуют макета

0
Advait Ghagare 27 Фев 2018 в 10:48

4 ответа

Лучший ответ

Вы должны использовать 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 Фев 2018 в 09:20

Вы можете попробовать ниже

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 Фев 2018 в 08:31

Просто добавь

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

Удалять

@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 Фев 2018 в 08:15

Попробуй это

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