在我试图开发的Android应用程序中。
有些人一起去某个地方并一起花钱。因为当我们进入一个团体时,我们进行团购,人们倾向于互相支付。我们常常忘记欠谁和欠多少。
我想设计一个可以解决这个问题的Android应用。为此,我把所有希望一起去的人说出Sam,Roy和Ria。
他们购买了我也输入的物品清单。假设他们一起购买Teddy,RC Car和巧克力,价格分别为50美元,120美元和30美元。假设Ria希望Teddy,Sam和Roy一起想要RC Car和所有三个想要的巧克力。因此,每个人应支付的金额为Ria 60美元(50美元+ 30美元的1/3 = 60美元),Sam和Roy(120美元的1/2和30美元的1/3 =每个70美元)。
为了实现这一点,我所做的就是为每个项目,我在顶部显示它,列表视图中的人名,每个列表项前面都有复选框。对于每个项目,我勾选已购买该项目的列表项目(人员),然后按下一步。类似地,显示所有项目,并且现在计算每个人要支付的金额。
答案 0 :(得分:0)
我认为您在选择多个列表项时遇到问题,或者在知道选择了哪个活动列表项或未选择哪个列表项时遇到问题。
所有这些事情都可以通过创建一个getter setter类来轻松完成,其中两个自定义字段一个是字符串选择,另一个是未选中所有其他getter setter对象。
然后创建一个带有getter setter数据类型的自定义arraylist
ArrayList<MyGetterSetter> listData = new ArrayList<MyGetterSetter> ();
和getter setter类:
Class MyGetterSetter
{
int selected , unselected ;
public int getSelected() {
return selected;
}
public void setSelected(int selected) {
this.selected = selected;
}
public int getUnselected() {
return unselected;
}
public void setUnselected(int unselected) {
this.unselected = unselected;
}
}
然后按默认值设置= 0;和未选中= 1; 当你通常在json解析或从数据库中获取数据并将其插入arraylist时,将实时数据添加到getter setter。
然后使用您创建的自定义数组列表设置列表适配器以显示视图数据。
MyGetterSetter model = listData.get(position);
if(model.getSelected==1)
{
yourCheckbox.setSelected(true);
}
else
{
yourCheckbox.setSelected(false);
}
//也可以通过这种方式在适配器中设置复选框/按钮单击监听器..
yourCheckbox.setonClickListener(new View.onClickListener
{
public void onClick(View view)
{
if(model.getSelected==1)
{
yourCheckbox.setSelected(false);
model.setSelected=0;
model.setUnSelected=1;
}
else
{
yourCheckbox.setSelected(true);
model.setSelected=1;
model.setUnSelected=0;
}
}
然后在每个项目上单击按活动列表项单击侦听器更改selected = 1的值(如果已选择或取消选择= 0); 如果用户选择了列表项 设置选择= 0和未选择= 1; 如果用户未选择。
然后在列表正下方附加一个按钮,在该按钮上单击循环整个适配器数据和/或数组列表数据并检查状态和位置。 如果发现selected = 1 然后使用其他选定的列表项计算该特定项目的金额。
答案 1 :(得分:0)
使用setChoiceMode()
方法。
setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);