我想通过Listview
循环获取EditText
值。列表视图内访问元素给出java.lang.NullPointerException
这是我获得Textview
值码:
View list_v = null;
ListView listView = (ListView) findViewById(R.id.listViewMain);
ArrayList<String> listitems = new ArrayList<String>();
EditText et;
for (int i = 0; i < listView.getCount(); i++) {
list_v = listView.getChildAt(i);
et = (EditText) list_v.findViewById(R.id.editText_a);
listitems.add(et.getText().toString());
}
和我的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/LinearLayout02"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
>
<TextView
android:id="@+id/code"
android:layout_width="0dp"
android:textColor="@android:color/black"
android:layout_height="wrap_content"
android:textSize="15sp"
android:layout_weight="1"
android:gravity="center"/>
<TextView
android:id="@+id/kcode_lbl"
android:layout_width="0dp"
android:textColor="@android:color/black"
android:layout_height="wrap_content"
android:textSize="15sp"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout03"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
>
<EditText
android:id="@+id/editText_a"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:ems="10"
android:layout_weight="1" >
</EditText>
<TextView
android:id="@+id/editText_lbl"
android:layout_width="0dp"
android:textColor="@android:color/black"
android:layout_height="wrap_content"
android:textSize="15dp"
android:layout_weight="1"/>
<TextView
android:id="@+id/date_value"
android:layout_width="0dp"
android:textColor="@android:color/black"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:id="@+id/date_lbl"
android:layout_width="0dp"
android:textColor="@android:color/black"
android:layout_height="wrap_content"
android:textSize="15sp"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
我的main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="5dp">
<LinearLayout
android:id="@+id/LinearLayout02"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:paddingBottom="10dp">
<AutoCompleteTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/code_txt"
android:layout_weight="0.25"
android:digits=""
android:inputType="number"
android:focusable="true">
<requestFocus />
</AutoCompleteTextView>
</LinearLayout>
<ListView
android:id="@+id/listViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="beforeDescendants"
>
</ListView>
</LinearLayout>
问题是,当我运行代码它在这行代码上给出java.lang.NullPointerException
:
list_v.findViewById(R.id.editText_a)
我是否应该重复执行LinearLayout
?
是你的自定义XML文件?你有充气吗? – Piyush
这是我的listview xml和im在我唯一的活动中使用它。 在活动im使用公共无效onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); - >主要是我把我的列表视图的地方 –
那么该文件中的列表视图在哪里?只有当您将它们充填到自定义适配器或列表适配器类中时,才能访问此视图。 – Piyush