Получить общее значение в EditText в ListView - PullRequest
1 голос
/ 30 января 2012

Я хочу создать демонстрационное приложение, которое рассчитывает выигрыш контента в просмотре списка. Пользователь может установить количество в Edittext, из этого количества я хочу автоматическую сумму всех элементов. В настоящее время я использую setOnFocusChangeListener на Edittext .. но мне не удалось получить татал. Пожалуйста, смотрите изображение ...
enter image description here

Есть предложения?

спасибо ..

Ответы [ 5 ]

2 голосов
/ 30 января 2012

Вместо 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 голосов
/ 30 января 2012

На EditText вы можете добавить TextWatcher с addTextChangedListener(...).

. Это TextWatcher изменит данные подчеркивания и вызовет onDataChanged() на адаптере.

1 голос
/ 30 января 2012

Используйте ListViews 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;

надеюсь, что это поможет.

0 голосов
/ 30 января 2012

Вы можете установить TextWatcher для каждого текстового просмотра и для метода, изменяющего текст, получать строку из каждого редактируемого текста, анализировать значение в целое число и добавлять к сумме.

0 голосов
/ 30 января 2012

Так как ваши строки в идеале фиксированы (или нет) либо это не имеет значения. Все, что вам нужно сделать, это перебрать каждый элемент в адаптере вашего ListView, а затем взять текст из каждого из них и затем извлечь ваши данные. Затем следите за этим и обрабатывайте его так, как вы хотите.

...