2012-01-30 5 views
1

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

Любое предложение?

Спасибо ..

+0

Доля кода у вас есть до сих пор. –

+2

Отсутствие причины для кода, его чисто теоретическая с точки зрения дизайна. – JoxTraex

ответ

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()); 
     } 
    }); 
} 
0

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

1

Использование 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

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

2

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

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

Смежные вопросы