アプリでRatingBar要素を使用していて、OnRatingChangedListenerで設定しようとしています。リスナーでは、変数のifステートメントを使用してさまざまなことを行っています。問題は、何らかの理由で複数のオプションがある場合、このリスナーが機能しないことです。これは、ifステートメントの変数が値を取得する前にonCreate()メソッドで設定されますが、別の場所に移動しようとしましたが、まったく成功しませんでした。
私のonCreate():
bar = (RatingBar) findViewById(R.id.serviceLevel);
bar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
if(Code==null){
Toast.makeText(TipCalculatorActivity.this, "Locationing error occured, please report to the developer.", Toast.LENGTH_LONG).show();
}else if(Code=="1"){
if(rating==0){
autochange.setText("Precentage: 0%");
precentage = 0;
calculate(value, precentage);
}else if(rating==0.5){
autochange.setText("Precentage: 10%");
precentage = 8;
calculate(value, precentage);
}else if(rating==1){
autochange.setText("Precentage: 11%");
precentage = 9;
calculate(value, precentage);
}else if(rating==1.5){
autochange.setText("Precentage: 11%");
precentage = 10;
calculate(value, precentage);
}else if(rating==2){
autochange.setText("Precentage: 12%");
precentage = 11;
calculate(value, precentage);
}else if(rating==2.5){
autochange.setText("Precentage: 12%");
precentage = 12;
calculate(value, precentage);
}else if(rating==3){
autochange.setText("Precentage: 13%");
precentage = 13;
calculate(value, precentage);
}else if(rating==3.5){
autochange.setText("Precentage: 13%");
precentage = 14;
calculate(value, precentage);
}else if(rating==4){
autochange.setText("Precentage: 14%");
precentage = 15;
calculate(value, precentage);
}else if(rating==4.5){
autochange.setText("Precentage: 14%");
precentage = 16;
calculate(value, precentage);
}else if(rating==5){
autochange.setText("Precentage: 15%");
precentage = 17;
calculate(value, precentage);
}
}else if(Code=="2"){
if(rating==0){
autochange.setText("Precentage: 0%");
precentage = 0;
calculate(value, precentage);
}else if(rating==0.5){
autochange.setText("Precentage: 10%");
precentage = 10;
calculate(value, precentage);
}else if(rating==1){
autochange.setText("Precentage: 11%");
precentage = 11;
calculate(value, precentage);
}else if(rating==1.5){
autochange.setText("Precentage: 12%");
precentage = 12;
calculate(value, precentage);
}else if(rating==2){
autochange.setText("Precentage: 13%");
precentage = 13;
calculate(value, precentage);
}else if(rating==2.5){
autochange.setText("Precentage: 14%");
precentage = 14;
calculate(value, precentage);
}else if(rating==3){
autochange.setText("Precentage: 15%");
precentage = 15;
calculate(value, precentage);
}else if(rating==3.5){
autochange.setText("Precentage: 16%");
precentage = 16;
calculate(value, precentage);
}else if(rating==4){
autochange.setText("Precentage: 17%");
precentage = 17;
calculate(value, precentage);
}else if(rating==4.5){
autochange.setText("Precentage: 18%");
precentage = 18;
calculate(value, precentage);
}else if(rating==5){
autochange.setText("Precentage: 19%");
precentage = 19;
calculate(value, precentage);
}
}
}
});
私のCode変数は、AsyncTaskが実行された後、つまりUIが生成された後に設定されます。解決策はありますか?