0

我有一个lisview,其中每行有三个文本框和一个复选框,我使用以下代码片段来获取选中复选框的确切位置,它对我很有效,但现在我不想把它放进去, listView.setOnItemClickListener 因为我想通过按钮而不是通过单击列表视图的项目或行来删除选中的项目,但是我不知道将这些代码放在哪里来实现我的目标,我会提前感谢您的关注和建议。

listView.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {

        CheckBox cbx = (CheckBox)view.findViewById(R.id.ChkOrder);

            int firstPosition = listView.getFirstVisiblePosition();
            for(int i=firstPosition;i<listView.getCount();i++){
            View v=listView.getChildAt(i);
            cbx = (CheckBox)v.findViewById(R.id.ChkOrder);
            if(cbx.isChecked()){

                 Toast.makeText(getApplicationContext(), 
                                 "Checked position " + goods.get(i), 
                                  Toast.LENGTH_SHORT).show();
                 checkedItemPosition=i;


           }
        }

     }

});
4

1 回答 1

0

这将通过将其放在您的首选按钮中并将视图更改为listview您在代码中声明的方式来解决:

Button Delete=(Button)findViewById(R.id.DeleteButton);
       DeleteGoods.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                /** Getting the position of the currently selected item**/
                //////////////////////////////////
                 CheckBox cbx = (CheckBox)listView.findViewById(R.id.ChkOrder);

                    int firstPosition = listView.getFirstVisiblePosition();
                    for(int i=firstPosition;i<listView.getCount();i++){
                    View v1=listView.getChildAt(i);
                    cbx = (CheckBox)v1.findViewById(R.id.ChkOrder);
                    if(cbx.isChecked()){

                        // Toast.makeText(getApplicationContext(), 
                               //          "Checked position " + goods.get(i), 
                                //          Toast.LENGTH_SHORT).show();
                         checkedItemPosition=i;
                    }
                    }
于 2013-02-17T06:28:08.133 回答