2016-07-14 3 views
-2

Dies ist mein Adapter Klasse.In meiner Liste habe ich Suchleiste und Text bearbeiten. Wert der Suchleiste wird show in edit text. Ich habe versucht, Werte aus allen bearbeiten Text und summieren sie und zeige es in Textansicht. Ich möchte es auf bearbeiten Text ändern Listener. Der Summenwert ändert sich also gleichzeitig in einer Textansicht. Bitte helfen Sie mir dabei. Thank uWie durch die Listenansicht zu iterieren und Summe aller Text bearbeiten Wert und in Textansicht und Wert in einer Textansicht anzeigen

public class CustomListAdapter extends BaseAdapter { 


    int value=0; 

    ArrayList<RowItem>exp_name=new ArrayList<RowItem>(); 
    Context context; 
    String TAG="myApp"; 
    StudyExpense study; 



    LayoutInflater inflater=null; 


    public CustomListAdapter(Context context,ArrayList<RowItem>exp_name) 
    { 

     this.context=context; 
     this.exp_name= exp_name; 
     inflater = LayoutInflater.from(this.context); 
    } 

    @Override 
    public int getCount() { 
     return exp_name.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     final View view; 
     view=inflater.inflate(R.layout.seek_items,null); 
     SeekBar seekBar=(SeekBar)view.findViewById(R.id.seekbarList); 
     TextView txtname=(TextView)view.findViewById(R.id.seekName); 


     final EditText txtprice=(EditText)view.findViewById(R.id.seekprice); 
     txtprice.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      } 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 


      } 

      @Override 
      public void afterTextChanged(Editable s) { 


      } 
     }); 


     if(exp_name.get(position).getSeekValue()==0) 
     { 
      seekBar.setProgress(0); 
      txtprice.setText("" + exp_name.get(position).getSeekValue()); 


     } 
     else{ 
      seekBar.setProgress(exp_name.get(position).getSeekValue()); 
      txtprice.setText("" + exp_name.get(position).getSeekValue()); 


     } 

     txtname.setText("" + exp_name.get(position).getTitle()); 

     seekBar.setTag(Integer.valueOf(position)); 
     seekBar.setId(position); 
     seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 


       txtprice.setText("" + progress); 

       exp_name.get(position).setSeekValue(progress); 
      } 

      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 
       // int id; 
       // id = seekBar.getId(); 
       // String title = exp_name.get(id).getTitle(); 

      } 

      @Override 
      public void onStopTrackingTouch(SeekBar seekBar) { 

      } 
     }); 
     return view; 




    } 





} 

Hauptaktivitätsklasse (Study Expense)

public class StudyExpense extends AppCompatActivity implements { 
    ListView listView; 
    Toolbar toolbar; 
    TextView total; 
    ArrayList exp_name = new ArrayList(); 
    TextView sum; 
    Button bt; 
    CustomListAdapter adapter; 

    String TAG = "myApp"; 

    public static final String[] titlelist = {"Study Expense", "Travelling Expense", "Household Expense", "Sports Expense", "Entertainment", 
      "Food Expense", "Misc Expense"}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_study_expense); 
     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     adapter = new CustomListAdapter(this, exp_name); 
     total = (TextView) findViewById(R.id.txt_total); 
     listView = (ListView) findViewById(R.id.listexp); 
     sum = (TextView) findViewById(R.id.seekprice); 
     bt=(Button)findViewById(R.id.button); 

     listView.setAdapter(new CustomListAdapter(StudyExpense.this, exp_name)); 
     for (int i = 0; i < titlelist.length; i++) { 
      RowItem item = new RowItem(); 

      item.setTitle(titlelist[i]); 

      exp_name.add(item); 


     } 
+0

müssen Sie mehr Variablen in POJO Klasse ergreifen, um Ihre Anforderung das heißt für txtprice zu erreichen – Nisarg

Antwort

0

erstellen int [] array Ihrer Liste Größe in StudyExpense

public class StudyExpense extends AppCompatActivity implements { 
    ListView listView; 
    public static ArrayList<Integer> valueslist; 
    ... 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_study_expense); 
     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     .... 
     for (int i = 0; i < titlelist.length; i++) { 
      RowItem item = new RowItem(); 
      item.setTitle(titlelist[i]); 
      exp_name.add(item); 
      } 
     listView.setAdapter(new CustomListAdapter(StudyExpense.this, exp_name)); 
     valueslist = new Arraylist<Integer>(exp_name.size()); 
     ...} 

nun einige Änderungen in CustomListAdapter Klasse machen in getView() Methode.

@Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     final View view; 
     view=inflater.inflate(R.layout.seek_items,null); 
     SeekBar seekBar=(SeekBar)view.findViewById(R.id.seekbarList); 
     TextView txtname=(TextView)view.findViewById(R.id.seekName); 


     final EditText txtprice=(EditText)view.findViewById(R.id.seekprice); 
     txtprice.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      } 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 

      StudyExpense.valueslist.set(position, Integer.parseInt(s.toString());); 
      } 

      @Override 
      public void afterTextChanged(Editable s) { 


      } 

    }); 

Jetzt Klicken Sie auf eine Schaltfläche auf Ausführen unter Code, um herauszufinden, HR Summe.

int sum = 0; 
for (int i=0; i<StudyExpense.valueslist.size(); i++){ 
    sum += StudyExpense.valueslist.get(i); 
} 
+0

ich dies versuchen. Danke –

+0

Ich möchte keine Addition bei jedem Klick-Ereignis .. Ich möchte durchführen, wenn die Werte in Text bearbeiten .. Standardmäßig habe ich 0 Wert für alle bearbeiten Text zugewiesen. Wenn der Benutzer die Suchleiste verwendet, wird der Suchleistenwert in editext angezeigt. –

Verwandte Themen