我有一個問題,成千上萬的人有在stackoverflow和我不好再問,但我讀了所有的問題,並試圖實現我的情況,他們都沒有工作或者可能我實施了他們錯誤。Android - 編輯文本和微調與自定義列表視圖適配器
這是我的問題。我有一個自定義的ListView有一個微調和編輯文本。我動態創建行。正如你們都知道edittext搞砸了,當滾動,所以我實施,查看持有人模式平滑滾動,但仍然我的列表視圖無法正常顯示。滾動時,編輯文本仍然會自己複製。我也試圖將用戶輸入保存在另一個類中,因爲我有一個微調和編輯文本在一起。我列表視圖排佈局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Spinner
android:layout_width="128dp"
android:layout_height="wrap_content"
android:id="@+id/ListViewSpinner"
android:layout_marginTop="10dp"
/>
<EditText
android:layout_marginRight="12dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:id="@+id/ListViewEditText"
android:textSize="16dp"
android:hint="Enter the CRN"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/ListViewSpinner"
android:layout_toEndOf="@+id/ListViewSpinner" />
</RelativeLayout>
我CourseClass.java
public class CourseClass {
private ArrayList<String> course_name;
private String course_crn;
public CourseClass(ArrayList<String> course_name, String course_crn) {
super();
this.setCourse_crn(course_crn);
this.setCourse_name(course_name);
}
public ArrayList<String> getCourse_name() {
return course_name;
}
public void setCourse_name(ArrayList<String> course_name) {
this.course_name = course_name;
}
public String getCourse_crn() {
return course_crn;
}
public void setCourse_crn(String course_crn) {
this.course_crn = course_crn;
}
}
我CourseAdapter.java
public class CourseAdapter extends ArrayAdapter<CourseClass> {
Context context;
public CourseAdapter(Context context, int layoutResourceId, int resource) {
super(context, resource);
this.layoutResourceId = layoutResourceId;
this.context = context;
}
@Override
public void add(CourseClass object) {
super.add(object);
}
@Override
public void remove(CourseClass object) {
super.remove(object);
}
@Override
public long getItemId(int position) {
return super.getItemId(position);
}
@Override
public int getCount() {
return super.getCount();
}
@NonNull
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
final ViewHolder holder;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(R.layout.list_view_row_layout, null);
holder = new ViewHolder();
holder.courseSpinner = (Spinner) row.findViewById(R.id.ListViewSpinner);
holder.courseCrn = (EditText) row.findViewById(R.id.ListViewEditText);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
final CourseClass course = (CourseClass) getItem(position);
holder.courseCrn.setText(course.getCourse_crn());
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(context, R.layout.support_simple_spinner_dropdown_item, course.getCourse_name());
holder.courseSpinner.setAdapter(arrayAdapter);
return row;
}
public class ViewHolder {
Spinner courseSpinner;
EditText courseCrn;
}
}
我已經閱讀了所有的問題和教程,但我仍然無法弄清楚。
你能指出哪裏出錯或者你能給我一些想法來解決我的問題嗎?
chnages:行= inflater.inflate(R.layout.list_view_row_layout,父母,假);現在讓viewholder類爲靜態 –
使用回收視圖將是一個更好的選擇 –
謝謝@Divyesh,但現在它不重複的值,但現在它完全刪除編輯文本熄滅screen.Can你猜爲什麼它呢? – Alperen