即使textview存在,也会获得Null Pointer Exception

时间:2017-03-02 21:07:50

标签: android

public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView= LayoutInflater.from(context).inflate(R.layout.sidebyside, parent, false);
    }

    TextView textView=(TextView)findViewById(R.id.txtview);
    EditText editText=(EditText)findViewById(R.id.ScanText);

    textView.setText(str[position]);

    return convertView;
}

我在第textView.setText(str[position])行收到NullpointerException我甚至在调试模式下检查过它。在我提到的行中,Text View为null。但是它存在于XML文件中

sidebyside的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="match_parent"
              android:layout_height="wrap_content">
    <TextView
        android:id="@+id/txtview"
        android:text="subject"
        android:layout_width="wrap_content"

        android:layout_height="wrap_content"
        android:layout_weight="0.3"
        android:textSize="30sp"
        android:textStyle="bold"
        android:gravity="right" />
    <EditText
        android:id="@+id/ScanText"
        android:hint="Internal+External"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.7"
        android:textSize="30sp"
         />

</LinearLayout>

为什么我得到这个?

2 个答案:

答案 0 :(得分:1)

找不到TextView/EditText(因此为空),因为您没有以正确的布局查找它们。您正在将xml扩展为convertView,因此请在其上调用findViewById

TextView textView=(TextView)convertView.findViewById(R.id.txtview);

答案 1 :(得分:0)

您是否有不同方向的多个版本的布局?

如果是这样,您需要检查所有内容。 这是正确存在时无法找到字段的正常原因。