我正尝试保存或获取来自ListView
的数据,其中包含EditText
。 当我尝试保存或获取来自ListView
的行数超过屏幕大小的数据时,出现错误。我知道为什么,但不知道如何解决它。原因是他们重用了这些观点。如何在ListView的大小超过屏幕大小时将数据保存在列表视图中?
这是我想要做的例子。如果屏幕中有5行,屏幕中有1行,我怎样才能得到第6行的引用?
public void saveData(){
StringBuffer buffer = new StringBuffer();
int count = listView.getCount();
for(int i=0 ;i < count ;i++) {
View child = listView.getChildAt(i);
TextView setText1 = (TextView)child.findViewById(R.id.TextView1);
EditText text = (EditText) child.findViewById(R.id.setText1);
String content1 = setText1.getText().toString().trim();
String content2 = text.getText().toString().trim();
buffer.append(content1);
buffer.append(",");
buffer.append(content2);
buffer.append(",");
}
我存储在Stringbuffer
数据。
public class CustomAdapter extends ArrayAdapter<String> {
public CustomAdapter(Context context, List<String> num_set) {
super(context, R.layout.custom_row ,num_set);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(getContext());
View CustomView = inflater.inflate(R.layout.custom_row ,parent , false);
String[] num = getItem(position).split(",");
TextView setText1 = (TextView)CustomView.findViewById(R.id.TextView1);
EditText setText2 =(EditText)CustomView.findViewById(R.id.setText2);
setText1.setText(num[0]);
setText2.setText(num[1]);
return CustomView;
}
}
这里是logcat。 所致:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
这里是custom_row.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:orientation="horizontal"
android:weightSum="1">
<TextView
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text" />
<EditText
android:id="@+id/setText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:enabled="true"
android:inputType="numberDecimal"
android:textSize="24sp" />
</LinearLayout>
分享您的适配器代码。 –
共享错误logcat。 –
@jankigadhiya我做到了 –