我想创建用于计算listview中内容奖品的演示应用。
用户可以在Edittext中设置数量,从我想要所有模式的自动求和的数量。
目前我在Edittext上使用了 setOnFocusChangeListener 但是我没能得到真正的感觉。
请看图片...
有什么建议吗?
谢谢..
答案 0 :(得分:2)
在EditText
上,您可以使用TextWatcher
添加addTextChangedListener(...)
。
此TextWatcher
将更改下划线数据,并在适配器上调用onDataChanged()
。
答案 1 :(得分:2)
而不是setOnFocusChangeListener
用于每个EditText
addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
totalTextView.setText(getSumOfAll());
}
});
}
答案 2 :(得分:1)
使用ListView getChildCount()
和getChildAt(i)
获取您的EditTexts然后getText()
和
总结一下。
int count = listviewview.getChildCount();
int sum=0;
for (int i=0; i<count; i++) {
EditText t = (EditText)((YourLayout)view.getChildAt(i)).getChildAt(1); //1 will get your EditText from the Layout of the List Item because you have 3 children there.
sum+=Integer.parseInt(t.getText());
}
return sum*yourprice;
希望它有所帮助。
答案 3 :(得分:0)
由于理想情况下您的行是固定的(或不固定),或者无关紧要。您需要做的就是遍历ListView适配器中的每个项目,然后从每个项目中获取文本,然后提取数据。然后跟踪它,并按照你想要的方式处理它。
答案 4 :(得分:0)
您可以在每个textview上设置TextWatcher,在text changed方法上,从每个编辑文本中获取字符串,将值解析为整数,然后添加到sum。