#android
#Android
Вопрос:
Ранее у меня был этот метод onItemClick, который позволяет пользователю щелкнуть строку в listview и приводит к новому действию, принося некоторые атрибуты (тексты, изображения) в новое действие
public void onItemClick(AdapterView<?> l, View v, int position, long id) {
Intent listIntent = new Intent(this, DetailsActivity.class);
listIntent.putExtra("spendino.de.ProjectDetail.position",position);
listIntent.setData(Uri.withAppendedPath(Uri.withAppendedPath(
Provider.CONTENT_URI, Database.Project.NAME), Long
.toString(id)));
startActivity(listIntent);
}
Но теперь я только что внедрил ‘View’ в свой CursorAdapter. Это невозможно реализовать onItemClick
в макете строк, что я могу сделать, это реализовать onClick для него. Но у меня возникли проблемы с преобразованием содержимого метода из моего предыдущего onItemClick в OnClickListener
.
Мне нужно, чтобы метод вел себя так же, как мой предыдущий onItemClick.
Потому что мне нужно объявить некоторые атрибуты, такие как position и id, которые недоступны в этом методе.
convertView.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
}
});
Поэтому мне нужно, чтобы OnClickListener
метод вел себя так же, как мой предыдущий OnItemClick
.
Ответ №1:
Вы все равно должны иметь возможность обрабатывать событие click с помощью прослушивателя onItemClick. Убедитесь, что ничто в вашем представлении не перехватывает и не обрабатывает событие click. Установите для clickable значение false, чтобы событие click заполнялось по цепочке и перехватывалось обработчиком onItemClick.
Комментарии:
1. Я понятия не имею, что делать с «длинным идентификатором», который у меня был в onItemClick, когда я внедряю тот же код в свой OnClickListener, он запрашивает меня об этом, иначе он выдает мне ошибку. Можете ли вы мне помочь, возможно, предоставив код, основанный на том, что у меня есть? Спасибо