这是我的代码;基本上,它是一个有多个选择的列表视图,在点击时为分数(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,但我不确定。
希望我能正确解释自己,你可以帮助我。
先谢谢你。
答案 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”相同的操作,但减去数字