我创建了一个扩展CursorAdapter的类,我在bindView方法上遇到了问题。
@Override
public void bindView(View v, Context context, Cursor c) {
int colNum = c.getColumnIndex(VidCallDbAdapter.QRLINK);
String colValue = c.getString(colNum);
System.out.println("value>> " + colValue);
TextView name_text = (TextView) v.findViewById(R.id.qr_url);
name_text.setText(colValue);
}
我总是在这一行中获得NullPointerException
TextView name_text =(TextView)v.findViewById(R.id.qr_url);
这很奇怪,因为我在我的一个xml上定义了qr_url。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content"
android:text=""
android:id="@+id/qr_url"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:textColor="#000000"
android:textSize="12sp">
</TextView>
</LinearLayout>
我是否错过了代码中的某些内容,这就是为什么它是NullPointerException?提前谢谢。
答案 0 :(得分:2)
如果您在此行中获得NullPointerException
TextView name_text = (TextView) v.findViewById(R.id.qr_url);
这意味着v
为空,因为如果找不到TextView,则会返回null
并且会抛出NullPointerException
name_text.setText(colValue);
因此,请确保您的public View newView(...)
被正确覆盖。
修改强> 你应该在newView中返回的是
return inflater.inflate(R.layout.<name of your xml>, parent, false);
答案 1 :(得分:0)
我遇到了类似的问题,其中 bindView()抛出了NullPointerException。我通过在ListView上调用setEmptyView()
来解决它。