1

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

像这样

int hvactemp=remoteService.getHvacTemp();

我将此值存储到文本视图中。

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);

                }
            });  
4

5 回答 5

4

您对代码流有误。

int hvactemp=remoteService.getHvacTemp();从两次单击侦听器中删除它并声明hvactemp为类变量。

于 2012-11-12T11:19:26.883 回答
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);
            }
        });  
于 2012-11-12T11:24:50.340 回答
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 的当前文本。希望能帮助到你。

于 2012-11-12T11:17:47.903 回答
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);

            }
        });  
于 2012-11-12T11:34:31.533 回答
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));
        }
    });
于 2013-05-27T13:19:54.963 回答