所以我有一个ListView
,其中每个列表项看起来都像
很容易插入这些复选框。我这样做了
public class QuestionableActivity extends Activity {
private QuestionableListAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.questionable_activity);
if(mAdapter == null){
mAdapter = new QuestionableListAdapter();
}
ListView questionListView = (ListView) findViewById(R.id.questionable_listview);
questionListView.setAdapter(mAdapter);
}
public static class QuestionableListItemFragment extends Fragment {
public QuestionableListItemFragment() {}
}
private class QuestionableListAdapter extends BaseAdapter {
private ArrayList<QuestionableListItemFragment> mList;
private QuestionableListAdapter() {
mList = new ArrayList<QuestionableListItemFragment>();
for (int i = 0; i < 10; i+=1){
mList.add(new QuestionableListItemFragment());
}
}
@Override
public int getCount() {
return 10;
}
@Override
public Object getItem(int i) {
return mList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
if(view == null){
view = getLayoutInflater().inflate(R.layout.question_fragment, null);
}
for (int i = 0; i < 4; i++) {
LinearLayout qOption = (LinearLayout) getLayoutInflater().inflate(R.layout.question_option_fragment, viewGroup, false);
((LinearLayout) view).addView(qOption);
}
return view;
}
}
}
我理解在listview中重新定义视图的概念。因此,在我的adapter
,
if(view == null)
- 首次创建新视图,因此我的list item fragment xml
else
- 正在重复使用,只需更新片段中的视图元素这么多,我明白了。但现在,这是否意味着当我必须创建/更新新片段时,我必须删除所有动态创建的元素,然后再次重新创建它们,因为它们可能/可能与特定片段无关?如果我不这样做,对于每个进入视图的片段,都会发生这种情况
复选框将添加每次时间。这很有道理,但那么做这些事情的最佳方法是什么呢?
答案 0 :(得分:0)
你在每个循环中添加了四次视图,为什么不在你的R.layout.question_option_fragment xml中写下4个视图