通过当前行中的复选框启用ListView中的下一行

时间:2012-08-22 07:58:06

标签: android listview checkbox row

我有一个ListView,每行都有一个TextView和一个Checkbox。我正在尝试创建一个序列,用户必须单击第一行的复选框以启用下一行并删除灰显效果。单击此行中的复选框将对下一行执行相同操作,依此类推。

这可能吗?怎么样?

1 个答案:

答案 0 :(得分:1)

创建自定义Object以保持行的状态。例如:

class Row {
   private TextView text;
   private CheckBox box;
   private boolean grayedOut;

   //implementation...
}

Activity的{​​{1}}内,您可以ArrayList<Row>()作为Adapter ListView的来源。

onCreate(..){
   mArrayList = new ArrayList<Row>();
   // fill arraylist
   Adapter mAdapter = new CustomAdapter(... , ... , mArrayList);
   ListView lv = findView..
   lv.setAdapter(mAdapter);
}

Adapter的{​​{1}}是自定义的。您可以按照here找到的示例进行操作。在您的情况下,将进行一些调整:

ListView

现在我们有一个public class CustomAdapter extends ArrayAdapter<Row>{ public CustomAdapter(...) { // do stuff } @Override public View getView(int position, View convertView, ViewGroup parent) { // .... if (item at position has gray state){ set layout to gray } else { set layout to active } // .... return row; } ,一个Listview,对于列表中的每个项目,我们都有CustomAdapter提供某种状态。默认情况下,除第一项外,所有状态都将设置为灰色状态。使用Row,我们可以解锁其他项目..

onItemClickedListener
祝你好运!