2013-08-11 4 views
0

У меня есть ListView, который реализован с использованием таможенного адаптера. Для изготовления адаптера я использую holder class. Класс имеет различные TextViews и ImageViews, а также идентификатор переменной Int для хранения идентификатора, полученного из базы данных. Теперь, когда я нажимаю на конкретный список, я хочу получить идентификатор, чтобы использовать его, я могу дополнительно отобразить информацию о новом действии. Идентификатор не предназначен для отображения в ListView. Как я могу получить идентификатор от onItemClickListener() Спасибо заранее.Получить конкретный идентификатор из списка

ответ

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

Идентификатор транзакции не хранится ни в каком 'TextView'. Он просто сохраняется как целочисленная переменная в качестве члена класса владельца. Поэтому в принципе я не могу использовать 'findViewById' –

+0

@AbhishekBatra Как я уже упоминал, вам нужно установить тег в' View'. В этом случае «transactionID» устанавливается в мой «TextView» в качестве тега (он не будет отображаться нигде). – Nevercom

+0

у меня получилось. Большое спасибо :) –

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().