У меня есть ListView
, который реализован с использованием таможенного адаптера. Для изготовления адаптера я использую holder class
. Класс имеет различные TextViews
и ImageViews
, а также идентификатор переменной Int для хранения идентификатора, полученного из базы данных. Теперь, когда я нажимаю на конкретный список, я хочу получить идентификатор, чтобы использовать его, я могу дополнительно отобразить информацию о новом действии. Идентификатор не предназначен для отображения в ListView
. Как я могу получить идентификатор от onItemClickListener()
Спасибо заранее.Получить конкретный идентификатор из списка
0
A
ответ
1
Вы можете установить метку к View
(.setTag()
), а затем восстановить его, это происходит на getView()
методом внутри пользовательского Adapter
Вот пример код:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String transactionId = ((TextView) view
.findViewById(R.id.tvTID)).getText().toString();
handler.getTransactionDetails(callback, transactionId);
}
});
1
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
YourObject selected = adapter.getItem(position);
Затем вы можете отправить выбранный элемент списка (Object) к вашей новой деятельности
Intent mIntent = new Intent(ThisActivity.this, NewActivity.class);
mIntent.putExtra("list_selected", selected);
startActivity(mIntent);
0
, а также идентификатор переменной Int для хранения идентификатора, полученного из базы данных .
Вы не предоставили Больше информации о том, что идентификатор (я не знаю точно, что он представляет), но сделать это просто вы можете установить этот идентификатор для каждого виджета в ListAdapter
через setTag() способом, а затем просто извлеките его из вашего метода onItemClick()
.
Идентификатор транзакции не хранится ни в каком 'TextView'. Он просто сохраняется как целочисленная переменная в качестве члена класса владельца. Поэтому в принципе я не могу использовать 'findViewById' –
@AbhishekBatra Как я уже упоминал, вам нужно установить тег в' View'. В этом случае «transactionID» устанавливается в мой «TextView» в качестве тега (он не будет отображаться нигде). – Nevercom
у меня получилось. Большое спасибо :) –