如果我有一个我想设置ArrayList的对象,那么语法是什么?这是一个带有getter和setter的示例Object(在本例中已删除Some_obj中的多个其他字符串和整数):
public class Some_obj {
protected ArrayList<String> spinnerList = new ArrayList<String>();
public ArrayList<String> getList() { return spinnerList; }
public void setList(ArrayList<String> spinnerList) { this.spinnerList = spinnerList; }
public Some_obj(ArrayList<String> _sl) { spinnerList = _sl; }
}
如何在对象中声明它,因为当前代码基本上是在需要为微调器设置适配器时设置新列表。我是否需要声明这样的列表?
protected ArrayList<String> spinnerList;
所以我可以做这样的事情吗?
Some_obj obj = listViewCells.get(selectedPosition);
obj.setList(listFromActivity);
我现在能够使用listFromActivity成功填充微调器,但是我觉得在不久的将来将listFromActivity存储在Some_obj中是有益的......我似乎无法弄清楚如何在里面设置一个ArrayList Some_obj如果它首先在Some_obj中设置为null。
答案 0 :(得分:0)
希望这可以帮助其他人,即使我正确地设置了列表。我需要覆盖弹出选择的自然微调器触摸,因此我在适配器中使用了spinnerOnTouch侦听器,其中“holder”是保存单元格内容的类。所以我在适配器的getView()中设置了监听器,如:
<强> holder.spinner.setOnTouchListener(spinnerOnTouch); 强>
在没有详细介绍我在过去一小时内修复的内容的情况下,这里的工作代码正在为已填充其选择的微调器提取正确的obj.list:
private View.OnTouchListener spinnerOnTouch = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
selectedPosition = Integer.parseInt(v.getTag().toString());
Some_obj obj = cells.get(selectedPosition);
if (event.getAction() == MotionEvent.ACTION_UP) {
adapter = null;
if(obj.list == null) {
adapter = new ArrayAdapter<String>(mContext, R.layout.spinner_cell, listFromActivity);
spinner = (Spinner)v.findViewById(R.id.spinner);
spinner.setAdapter(adapter);
new GetSelectionsTask().execute();
}
else
{
adapter = new ArrayAdapter<String>(mContext, R.layout.spinner_cell, obj.list);
spinner = (Spinner)v.findViewById(R.id.spinner);
spinner.setAdapter(adapter);
}
}
return false;
}
};
长话短说,你应该避免尝试在ListViews中添加微调器,因为你必须做很多工作来保持你在适配器的getView()中的位置,微调器的选择,以及更新与之相关的对象。每个列表......更不用说微调器出现时的条件了,因为无论你使用什么单元格,getView()方法都会将它的位置改为0。