2013-08-12 2 views
0

У меня есть список, в котором есть 2 текстовых вида рядом друг с другом. Теперь этот список будет содержать более 100 элементов, отображающих около 10 элементов на одной странице.ListView onItemClickListener бросает нулевой указатель на прокрутку

Теперь, когда я прокручиваю список всех позиций, указывающих из позиции 12, сколько бы это ни было, view возвращает как null.

Когда я искал это, получил некоторые результаты getFirstVisiblePosition(); и т. д. Как бы то ни было, я не совсем понимаю это.

Может ли кто-нибудь сказать мне, как я могу это решить?

Вот мой код,

listview.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg,View view, int pos, long arg3) { 

     View parentView = (View) view.getParent(); 
     parentView = listview.getChildAt(pos); 
     if (null != parentView) { 
       TextView dupid, dupdesc; 
       dupid = ((TextView) parentView.findViewById(R.id.dupitemId)); 
       dupdesc = ((TextView) parentView.findViewById(R.id.dupitemIdDesc)); 
       String duplicateId = dupid.getText().toString(); 
       String duplicateDesc = dupdesc.getText().toString(); 
      } 

     } 
    }); 

Когда я прокручиваю вниз сказать 20 позиции,

эта линия

parentView = listview.getChildAt(pos); 

бросает меня пустым.

enter image description here

Может ли один помочь мне в выяснении?

+0

Ваш родительский элемент уже инициализирован. почему вы требуете этого 'parentView = listview.getChildAt (pos)' then? – Raghunandan

+0

Поскольку я хочу получить представление о конкретном элементе строки и используя это, я получу значения textview – tejas

+0

, у вас уже есть 'parentView' – Raghunandan

ответ

1

Разве это не все, что вам нужно?

listview.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg,View view, int pos, long arg3) { 
     TextView dupid, dupdesc; 
     dupid = ((TextView) view.findViewById(R.id.dupitemId)); 
     dupdesc = ((TextView) view.findViewById(R.id.dupitemIdDesc)); 
     String duplicateId = dupid.getText().toString(); 
     String duplicateDesc = dupdesc.getText().toString(); 
    } 
}); 
+0

спасибо :) оба ваших кода работают. – tejas

Смежные вопросы