2017-01-06 7 views
0

私は価格の項目からなるリストビューを持っています。私のlistviewにはDeleteボタンもあります。私はまた、リストビューの一部ではないレイアウトの下部にテキストビューを持っており、それは合計量を表示します。リストビューからアイテムを正常に削除できます。私が望むのは、アイテムが削除されると、合計金額も変更されるということです。ここでカスタムアダプターから別のアクティビティーにデータを渡す

は、私はいくつかのアクション

holder.del.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
      remove(getItem(position)); 
    } 
}); 

を行うと、ここ量の私のTextViewが発見された私の活動である必要があります私のアダプタの一部です。

public class Cart extends MainActivity { 

TextView amount_total; 
ListView cartList; 
CartCustomAdapter cartCustomAdapter; 
String name, price; 
static ArrayList<Order> cartArray = new ArrayList<Order>(); 

static Double total_amount = 0.00d; 
static Double temp = 0.00d; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_cart); 

    amount_total = (TextView) findViewById(R.id.total_tv); 
    Bundle bundle = getIntent().getExtras(); 
    Button checkout = (Button) findViewById(R.id.check_out); 
    Button add_item = (Button) findViewById(R.id.add_item); 
     name = bundle.getString("i_name"); 
     price = bundle.getString("i_price"); 
     temp = Double.parseDouble(price); 
     total_amount = (total_amount + temp); 
     amount_total.setText("Php" + total_amount.toString()); 
    add_item.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(Cart.this,MainActivity.class); 
      startActivity(intent); 


     } 
    }); 
    cartList = (ListView) findViewById(R.id.cart_list); 

    cartCustomAdapter = new CartCustomAdapter(Cart.this,R.layout.list_cart,cartArray); 
    cartList.setItemsCanFocus(false); 
    cartList.setAdapter(cartCustomAdapter); 

    cartArray.add(new Order(name,price,"1")); 

    cartCustomAdapter.notifyDataSetChanged(); 

} 

} 
+0

また、あなたのUIとアダプタクラスコードのスクリーンショットを追加することはできますか? –

答えて

0

あなたの活動にテキストビューを更新するには、以下のような方法でインターフェイスを定義します。

updateDeletedItemCount(); 

と、この方法では、整数取ると

deletedCount++; 

のようにその数を増加させ、その後、更新それはこのようなテキスト表示にします

tvDeletedCount.setText("Deleted Item Count : "+ deletedCount); 
0

これはそれを行うための最も簡単な方法です:

//Add a method to your Cart 
public void changeTotal(int totalPrice){ 
    if(textView != null) // set total price 
} 
// Call after remove an item in your listener: 
if(getContext() instanceOf Cart){ 
    ((Cart)getContext()).changeTotal(newTotalPrice); 
} 

これが最善の方法ではありませんが、私はそれが今のところ大丈夫だと思います:)

+0

これは何とかうまくいきましたが、バグがあります。それは減算し、アイテムを削除する場合は合計金額を変更しますが、アイテムをすべて削除すると元の金額に戻ります。 textviewがnullの場合はelse条件を試してみます。 –

+0

バグはあなたの合計価格計算機能までです。 –

関連する問題