Android:通过单击按钮增加和减少textview的int值

时间:2012-11-12 11:14:58

标签: android button onclick

我的类中有一个名为InvokeService()的方法,而且我在远程服务中存储一个Int值。

像这样

int hvactemp=remoteService.getHvacTemp();

我将此值存储到textview中。

drivertmpcount.setText(Integer.toString(hvactemp));

现在我想要按下按钮并减少此值。

我的代码中声明了两个按钮,问题是

如果单击右键,则值为“增加”

假设值增加30,如30,31,32,33,34,35等等。

但问题是,当我单击左键时,它不会从我所呈现的值中删除,正如我所说的那样,当值为35时,所以现在如果我按下左键,它应该像这样34,32,31, 32

但它从30,29,28,27而不是35,34,32,31

下降

如何解决这个问题?

这是我的代码。

 private void invokeService() {

    if (conn == null) {
        // Toast.makeText(CarHome.this, "Cannot invoke - service not bound",
        // Toast.LENGTH_SHORT).show();
    } else {
        try {
            System.out.println(remoteService);

            int rpm = remoteService.getEnginRPM();
            int temp = remoteService.getTemperature();
            // int battery = remoteService.getBatteryLevel();
            int speed = remoteService.getSpeed();
            final int hvactemp = remoteService.getHvacTemp();
            System.out.println("Raghav hvac" + hvactemp);

            System.out.println("jaydeep speed" + speed);
            // rpm_text.setText(rpm);


        drivertmpcount.setText(Integer.toString(hvactemp));


            driverbtnright.setOnClickListener(new View.OnClickListener() {

                int hvactemp=remoteService.getHvacTemp();



                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    hvactemp++;
                    drivertmpcount.setText(Integer.toString(hvactemp));
                     System.out.println("Raghav hvac" + hvactemp);


                }
            });

            driverbtnleft.setOnClickListener(new View.OnClickListener() {
                int hvactemp=remoteService.getHvacTemp();
                public void onClick(View v) {
                    // TODO Auto-generated method stub


                    //  drivertmpcount.setText(Integer.toString(hvactemp));
                    hvactemp --;
                    drivertmpcount.setText(Integer.toString(hvactemp));
                     System.out.println("Raghav decrement hvac" + hvactemp);

                }
            });  

5 个答案:

答案 0 :(得分:4)

你的代码流错了。

从两次单击Listener中删除此int hvactemp=remoteService.getHvacTemp();,并将hvactemp声明为类变量。

答案 1 :(得分:2)

试试这个:

        driverbtnright.setOnClickListener(new View.OnClickListener() {


            public void onClick(View v) {
                // TODO Auto-generated method stub

               int increase = Integer.parseInt((String)driverbtnright.getText())+1;

               driverbtnright.setText(increase);


            }
        });

        driverbtnleft.setOnClickListener(new View.OnClickListener() {
            int hvactemp=remoteService.getHvacTemp();
            public void onClick(View v) {

            int decrease= Integer.parseInt((String)driverbtnright.getText())-1;

               driverbtnright.setText(decrease);
            }
        });  

答案 2 :(得分:1)

试试这个。

String t = drivertmpcount.getText().toString();

    int a = Integer.parseInt(t);
    a--;

    drivertmpcount.setText(Integer.toString(a));
                         System.out.println("Raghav decrement hvac" + a);

这种情况正在发生,因为你指的是hvactemp而不是edittext的当前文本。 希望它有所帮助。

答案 3 :(得分:1)

将hvactemp声明为全局整数,它将在默认的oncreate方法和按钮单击(递增和递减)中设置,稍后将用于在textviews中设置文本。

       private int hvactemp; //declare it globally
       hvactemp = remoteService.getHvacTemp(); 

    drivertmpcount.setText(Integer.toString(hvactemp));


        driverbtnright.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub

                hvactemp++;
                drivertmpcount.setText(Integer.toString(hvactemp));
                 System.out.println("Raghav hvac" + hvactemp);


            }
        });

        driverbtnleft.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub



                hvactemp --;
                drivertmpcount.setText(Integer.toString(hvactemp));
                 System.out.println("Raghav decrement hvac" + hvactemp);

            }
        });  

答案 4 :(得分:0)

我试试这个...看我的代码..

plus = (Button) findViewById(R.id.btn_plus);
    minus = (Button) findViewById(R.id.btn_minus);

    plus.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) 
        {
            // TODO Auto-generated method stub
            txt_number.setText(Integer.toString(textvalue));
            textvalue++;
        }
    });

    minus.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            textvalue--;
            txt_number.setText(Integer.toString(textvalue));
        }
    });