2016-09-05 20 views
1

私はListViewを3つのカラム 'item'、 'qty'、 'rate'で作成しました。ユーザからこのエントリを取得して、リストビューの作業を完璧にしましたが、 'rate'それらをネット金額に加算します。ここでlistViewの特定のTextViewのすべての値を取得する方法は? -Android

は私のアンドロイドのコードは次のとおりです。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_list); 
    populateList(); 
    adapter = new listviewAdapter(List.this, list); 
    lview.setAdapter(adapter); 
} 


private void populateList() { 
    HashMap temp = new HashMap(); 
    list = new ArrayList<HashMap>(); 

    item = etItem.getText().toString(); 
    qty = etQty.getText().toString(); 
    rate = etRate.getText().toString(); 

    temp.put(FIRST_COLUMN, "1"); 
    temp.put(SECOND_COLUMN, item); 
    temp.put(THIRD_COLUMN, qty); 
    temp.put(FOURTH_COLUMN, rate); 
    list.add(temp); 

}

私は以下、この方法を試してみたが、それは唯一の私は、レート列の下のすべての値を取得し、追加したい最初のvalue.Butトースト彼らはネット金額のためにアップ。

public void get() { 
     StringBuilder sb = new StringBuilder(); 
     for(int i=0; i<adapter.getCount(); i++) { 
      String a = ((TextView) findViewById(R.id.FourthText)).getText().toString(); 
      adapter.getItem(i).toString(); 
      sb.append(a); 
      sb.append("\n"); 
     } 
     text = sb.toString(); 
     Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show(); 
    } 
+0

なぜあなたはすべてのアイテムを持っている必要がありますあなたが作ったリスト変数の上にinterateできないのですか? –

+0

@caiolopesリストからいくつかの行を削除するボタンを作ったので、ListViewに更新があるので、私はそれをやりません。 –

+0

リストビューから削除するときにもリストから削除することをお勧めします。そうすれば、何が起きているのかを把握することができます。また、リストをループすることで正味金額を簡単に計算することができます。 –

答えて

0

私は、これはあなたを助けるかもしれないと思います。

private int GrandTotal(ListView list) { 
int sum=0; 
for (int i = 0; i < list.getCount(); i++) { 
    View v = list.getChildAt(i); 
    TextView rate = (TextView) v.findViewById(R.id.rate); 
    sum = sum + Integer.parseInt(rate.getText().toString()) 
} 
return sum; 

}

:)

1
public void getTotalRate() { 

    int totalRate = 0; 
    for (int i = 0; i < list.size(); i++) { 
     HashMap temp = list.get(i); 
     /// here fourth column is rate 
     int rate = (int) temp.get(FOURTH_COLUMN); 
     totalRate = totalRate + rate; 
    } 

    Toast.makeText(getApplicationContext(), "total rate=" + totalRate, Toast.LENGTH_LONG).show(); 
} 
+0

私は "int rate = temp.get(" FOURTH_COLUMN ");"行でNullPointerExceptionを取得します。 –

+0

@iamRaja私は、FOURTH_COLUMNを文字列ではなく変数として使用しているので、コードを更新しました。 – Arslan

+0

@Arsian他のアイデア。? –

関連する問題