我想要一种控制按钮的中心方式

时间:2016-06-09 14:36:58

标签: java android

您好我有2行,每行有一个名称textfield,2个按钮和一个文本字段来显示金额。之后会有更多行。 我想要1个按钮将金额加1,另一个按钮将金额减少1。 但我不知道如何从我按下的按钮获取ID。我已经走到了这一步。

我希望有人能告诉我。我如何根据按下的按钮获得indexvalue。

public class MainActivity extends AppCompatActivity {

    private ArrayList<Integer> ButtonUp;
    private ArrayList<Integer> Amount;
    private ArrayList<Integer> ButtonDown;
    int ArrayIndex = 0;
    int Value = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButtonUp();
        Amount();
        ButtonDown();
    }

    // ArrayList ButtonUp
    public void ButtonUp(){
        ButtonUp.add(R.id.Bup1);
        ButtonUp.add(R.id.Bup2);
    }

    // ArrayList Amount
    public void Amount(){
        Amount.add(R.id.Aantal1);
        Amount.add(R.id.Aantal2);
    }

    // ArrayList ButtonDown
    public void ButtonDown() {
        ButtonDown.add(R.id.Bdown1);
        ButtonDown.add(R.id.Bdown2);
    }

    // Get position ArrayList on press
    // Publish new Value
    public void buttonPress(View v) {
        switch (v.getId()) {
            case R.id.Bup1:
                SetAmountUp(id);
                displayQuantity(Value);
                break;
            case R.id.Bup2:
                SetAmountUp(R.id.Bup2);
                displayQuantity(Value);
                break;
            case R.id.Bdown1:
                SetAmountDown(R.id.Bdown1);
                displayQuantity(Value);
                break;
            case R.id.Bdown2:
                SetAmountDown(R.id.Bdown1);
                displayQuantity(Value);
                break;
        }
    }

    public void SetAmountUp(int indexNumberUp){
        Value = Amount.get(ButtonUp.indexOf(indexNumberUp));
        Value++;
        Amount.set(ArrayIndex,Value);
    }

    public void SetAmountDown(int indexNumberDown){
        Value = Amount.get(ButtonDown.indexOf(indexNumberDown));
        Value--;
        Amount.set(ArrayIndex,Value);
    }

    // Publish number
    private void displayQuantity(int NewAmount) {
        int ID = Amount.get(ArrayIndex);
        TextView quantityTextView = (TextView) findViewById(ID);
        quantityTextView.setText(NewAmount);
    }
}

2 个答案:

答案 0 :(得分:1)

在布局中,为每个按钮声明一个唯一ID,然后为每个按钮添加android:onClick="increment"

在班上,创建方法

public void increment(View view) {
  switch (view.getId()){
   case R.id.yourbuttonid1:
     // do what you whant
     break;
   case R.id.yourbuttonid2:
    // do with second editext
    break
    // ....
   }


}

减少方法的方法相同。

答案 1 :(得分:0)

如果你使用了recyclerView

,那将会容易得多