我的类中有一个名为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);
}
});
答案 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));
}
});