【发布时间】:2014-12-11 08:39:53
【问题描述】:
我在每一行都使用 Switch 制作一个列表视图。当我将第一个项目设置为 ON 并向下滚动时,第 7 行开关将变为 ON,而第一个开关将变为 OFF .怎么会这样?
基础适配器:
public class QuestionsAdapter extends BaseAdapter {
private Activity activity;
private List<QuestionModel> data;
private static LayoutInflater inflater = null;
public ImageLoader imageLoader;
private int Icounter = 1;
private DecimalFormat f;
public QuestionsAdapter(Activity a, List<QuestionModel> d) {
f = new DecimalFormat("0.0");
activity = a;
data = d;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader = new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.listview_form, null);
TextView tvQuest = (TextView) vi.findViewById(R.id.tvQuest);
Switch switch1 = (Switch) vi.findViewById(R.id.activeButton);
tvQuest.setText(data.get(position).getKey());
Icounter++;
return vi;
}
}
声明列表视图
questionList = new ArrayList<QuestionModel>();
questionAdapter = new QuestionsAdapter(ShopVisit.this, questionList);
lvQuestion.setAdapter(questionAdapter);
列表视图项目视图
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lvRow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/dashboard_button"
android:orientation="horizontal"
android:padding="20dp" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4"
android:gravity="center_vertical"
android:orientation="vertical" >
<TextView
android:id="@+id/tvQuest"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Question"
android:textColor="@color/dimmed_text_2"
android:textSize="10dp"
android:textStyle="bold" />
</LinearLayout>
<Switch
android:id="@+id/activeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" /></LinearLayout>
【问题讨论】:
标签: android listview switch-statement