在ListView中获取EditText中的总值

时间:2012-01-30 11:43:17

标签: android android-listview android-edittext

我想创建用于计算listview中内容奖品的演示应用。 用户可以在Edittext中设置数量,从我想要所有模式的自动求和的数量。 目前我在Edittext上使用了 setOnFocusChangeListener 但是我没能得到真正的感觉。 请看图片...
enter image description here

有什么建议吗?

谢谢..

5 个答案:

答案 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。