當它開始運行時,前5行和從3行沒有錯誤。但是,它會給出空指針異常。我無法解決它爲什麼會發生?Android適配器getView null
代碼片斷:
public View getView(int position, View convertView, ViewGroup viewGroup) {
PaylasilanHolder holder;
final int pozisyon = position;
Object currentpaylasilan = getItem(position);
Paylasilanlar paylasilan = (Paylasilanlar) currentpaylasilan;
if (convertView == null) {
Log.i("tago", "convertview null");
holder = new PaylasilanHolder();
if (paylasilan.cesit.equals("text")) {
convertView = lala.inflate(R.layout.paylasilanyazi,null);
holder.tv1 = (TextView) convertView.findViewById(R.id.textView11);
holder.tv2 = (TextView) convertView.findViewById(R.id.textView12);
holder.tv3 = (TextView) convertView.findViewById(R.id.textView13);
holder.image1 = (ImageButton) convertView.findViewById(R.id.imageButton11);
Log.i("tago", "texttexttext");
} else if (paylasilan.cesit.equals("teklifoto")) {
convertView = lala.inflate(R.layout.paylasilanresim,null);
holder.tv1 = (TextView) convertView.findViewById(R.id.textView11);
holder.tv2 = (TextView) convertView.findViewById(R.id.textView12);
holder.tv3 = (TextView) convertView.findViewById(R.id.textView13);
holder.image1 = (ImageButton) convertView.findViewById(R.id.imageButton11);
Log.i("tago", "tekliteklitekli");
} else if (paylasilan.cesit.equals("ikilifoto")) {
Log.i("tago", "ikiliikiliikili");
} else if (paylasilan.cesit.equals("anket")) {
convertView = lala.inflate(R.layout.paylasilananket, null);
holder.etv1 = (EditText) convertView.findViewById(R.id.editText5);
holder.etv2 = (EditText) convertView.findViewById(R.id.editText6);
holder.etv3 = (EditText) convertView.findViewById(R.id.editText7);
holder.etv4 = (EditText) convertView.findViewById(R.id.editText8);
Log.i("tago", "anketanketanket");
}
convertView.setTag(holder);
} else {
holder = (PaylasilanHolder) convertView.getTag();
}
if (paylasilan.cesit.equals("text")) {
holder.tv1.setText(paylasilanlarListesi.get(position).getGonderenid());
holder.tv2.setText(paylasilanlarListesi.get(position).getYaziveyaurl());
} else if (paylasilan.cesit.equals("teklifoto")) {
holder.tv3.setText(paylasilanlarListesi.get(position).getGonderenid());
new urldenResim(holder.image1).execute(paylasilanlarListesi.get(position).getYaziveyaurl());
} else if (paylasilan.cesit.equals("ikilifoto")) {
} else if (paylasilan.cesit.equals("anket")) {
holder.etv1.setText(paylasilanlarListesi.get(position).getQuestion());
holder.etv2.setText(paylasilanlarListesi.get(position).getOption1());
holder.etv3.setText(paylasilanlarListesi.get(position).getOption2());
holder.etv4.setText(paylasilanlarListesi.get(position).getOption3());
}
return convertView;
}
它給出:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
com.example.bahadir.myapplicationn.PaylasilanlarAdapter.getView(PaylasilanlarAdapter.java:128)
在holder.tv3.settext()方法。
我該如何克服它?
你想設置int爲String對象,只需嘗試holder.tv3.setText(「」+ paylasilanlarListesi.get(position).getGonderenid()); –
Gonderenid是字符串Mahesh :) – CaveMan
你可以發佈paylasilanresim和paylasilanyazi佈局 –