Android ListView中复选框侦听器的业务逻辑

Android ListView中复选框侦听器的业务逻辑,android,Android,我已经为我的ListView实现了一个自定义适配器,它在每一行中都包含一个复选框 因为我的自定义适配器中有我的click listener,所以我不得不在那里实现我的业务逻辑,即,当单击复选框时会发生什么。。。访问数据库等 对吗?在自定义适配器之外实现该业务逻辑不是更好的做法吗?我认为适配器应该只关心可视化。我只会在复选框单击上标记该项,并在不同的按钮单击上执行所有逻辑,这将在列表视图之外,类似于iPhone处理编辑表格的方式。我记不起使用复选框本身执行某些操作的情况。试试这个。希望它对您有所帮

我已经为我的ListView实现了一个自定义适配器,它在每一行中都包含一个复选框

因为我的自定义适配器中有我的click listener,所以我不得不在那里实现我的业务逻辑,即,当单击复选框时会发生什么。。。访问数据库等


对吗?在自定义适配器之外实现该业务逻辑不是更好的做法吗?我认为适配器应该只关心可视化。

我只会在复选框单击上标记该项,并在不同的按钮单击上执行所有逻辑,这将在列表视图之外,类似于iPhone处理编辑表格的方式。我记不起使用复选框本身执行某些操作的情况。

试试这个。希望它对您有所帮助

lv_Archiveist.setOnItemClickListener(new OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {
                // TODO Auto-generated method stub
                if(view.findViewById(R.id.chkbox).isChecked())
                {
                //your method//
                    //you can also get the position of your selected checkbox by the parameter  "position"
                }

问题是如何在列表适配器之外调用某个方法?这是问题吗?在适配器的类中定义此公共方法,您可以在适配器的对象上调用它,例如,通过从listView YourCustomAdapterlistView.getAdapter.doSomethingWithCheckedItems获取它;好的,那就是对所有检查过的项目进行批量处理。但是每次检查一个项目时,您会怎么做呢?正如我所说的,我不会对每个项目都执行逻辑检查,我只会将项目标记为已检查/未检查。这个逻辑将在适配器中,但业务逻辑将在它之外。这是我的问题,我如何将它放置在自定义适配器之外?为了满足我的应用程序的需要,它需要在每次单击复选框时执行逻辑。但是你的方法是自定义适配器中的一个方法,不是吗?它应该在自定义适配器之外。它在activity类中,lv_Archiveist是ListView在我的问题中,我指的是扩展ArrayAdapter的自定义列表适配器,我实现的业务逻辑在getView方法内部。所以我的问题是,我可以把它放在自定义适配器之外吗?怎样我如何调用它呢?是的,在我的代码中,我有一个自定义适配器,它扩展了BaseAdapter。我在其中声明了复选框。我还有一个textview。我们可以在使用ListView的Activity类中访问这些控件。可以通过上面发布的方法从listView访问适配器。因此,您也可以将业务逻辑置于适配器类之外。您可以使用onCheckchangeListener引用选中的复选框,并使用position参数访问其相关文本框或任何控件的数据。如果有查询,如果可能的话,我会试着发布我的程序。希望它有帮助:-哦,发布一些代码会很有趣:每次点击复选框都有效吗?