2015-01-26 3 views
1

Я создаю приложение, которое считывает данные из локального файла json и отображает его как Listview. Я также создал для этого настраиваемый адаптер. Проблема заключается в том, когда я устанавливаю вид списка с помощью метода getView говорит следующее сообщение об ошибкеИсключение ссылки на null null

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference at com.example.nyqmind.jsondemo.MainActivity$MyCustomAdapter.getView 

здесь мой код

public View getView(int position, View convertView, ViewGroup parent){ 
     View row=convertView; 
     ViewHolder holder; 
     if(row==null) { 
      LayoutInflater inflater = (LayoutInflater) con.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      row = inflater.inflate(R.layout.listview_layout, parent, false); 
      holder=new ViewHolder(); 
      holder.id= (TextView) findViewById(R.id.textView2); 
      holder.name= (TextView) findViewById(R.id.textView4); 
      row.setTag(holder); 
     } 
     else 
     { 
      holder= (ViewHolder) convertView.getTag(); 
     } 


     Employee list=emp.get(position); 
     holder.id.setText(list.getid()); 
     holder.name.setText(list.getName()); 
     return row; 
    } 

Помогите мне решить эту проблему.

ответ

3

Изменить

holder.id= (TextView) findViewById(R.id.textView2); 
holder.name= (TextView) findViewById(R.id.textView4); 

в

holder.id= (TextView) row.findViewById(R.id.textView2); 
holder.name= (TextView) row.findViewById(R.id.textView4); 

ваш holder.id и holder.name являются null на

holder.id.setText(list.getid()); 
holder.name.setText(list.getName()); 
+0

Кроме того, если 'list.getId()' возвращает число, преобразовать его в string перед установкой текста, иначе вы получите 'ResourceNotFoundException' –

+0

Спасибо, что отлично работает. Большое спасибо. – Ranjith

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