撤消Listview中的操作 - onitemclicklistener

时间:2015-08-28 08:22:35

标签: android listview android-listview

这是我的代码;基本上,它是一个有多个选择的列表视图,在点击时为分数(textview)添加一个数字。我的问题是,我希望在列表视图中选择项目时将数字添加到分数,并在取消选择项目时删除。每次单击某个项目时,我的代码都会添加到分数中。

public class MainActivity extends Activity {

ListView myList;
TextView tv1;

String[] listContent = {

        "Add 2 to total",
        "Add 3 to total",
        "Add 1 to total",
        "Add 5 to total",


};

@Override

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myList = (ListView) findViewById(R.id.listView1);
    tv1 = (TextView) findViewById(R.id.textView);
    final int[] counter = {0};

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, listContent);
    myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

    myList.setAdapter(adapter);


    myList.setOnItemClickListener(new OnItemClickListener() {

        private String[] listview_array2 = {"2", "3", "1", "5"};

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

            if (myList.isItemChecked(position)) {
                String name = this.listview_array2[position];
                int counter2 = Integer.parseInt(name);
                counter[0] = counter[0] + counter2;
                tv1.setText("Total " + counter[0]);


            } else {
            }
        }

    });

}

}

我原以为可能会改为setOnItemSelected而不是ItemClicked,但我不确定。

希望我能正确解释自己,你可以帮助我。

先谢谢你。

3 个答案:

答案 0 :(得分:0)

尝试使用OnItemClickListener Boolean 进行选择/取消选择。

希望这会起作用

答案 1 :(得分:0)

您可以通过代码执行此操作。 在列表中保留一个标记,如列表列表;

值是包含数字和标志的模型。

如果单击某个项目,请将该标志设置为true并进行计算。

如果再次单击已单击的项目,则只需检查标记。

如果(list.getposition(位置).isItemClickd){

// Decrease that value from total
// list.getposition(position).isItemClickd = false;

}其他{

// list.getposition(position).isItemClickd = true;
// total = total+prevValue;

}

答案 2 :(得分:0)

我终于以简单的方式做到了!!!

"Line1\nLine2"

我在“else”中添加与“if”相同的操作,但减去数字