私のコードは完全に機能しますが、ボタンを 2 回クリックした場合のみです。1 回だけクリックすると、"limit_customers" = 0 が返されます。
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button_to_customers:
int limit_customers = 50;
// R1 = Radiobutton > inside RadioGroup
if(r1.isChecked()){
group_id = 0;
}else{ group_id = 1;}
if(the_list.get(0).getSelected() == true){
Log.e("list:", String.valueOf(the_list.get(0).getSelected()));
// This returns true at first click (it's correct)
if(group_id == 0){
Log.e("group:", String.valueOf(group_id));
// returns 0 at first click (it's correct)
limit_customers = get_customers_count();
Log.e("limit:", String.valueOf(limit_customers));
// returns 0 at first click (it's INCORRECT)
// at second click returns 3 (it's correct)
}
}
break;
}
}
count(); を返す関数は次のとおりです。
public int get_customers_count(){
ExecutorService mExec = Executors.newSingleThreadExecutor();
mExec.execute(new Runnable() {
@Override
public void run() {
try{
SoapObject request = new SoapObject(NAMESPACE, "get_count_customers");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(URL + "/get_count_customers", envelope);
SoapObject rep = (SoapObject) envelope.bodyIn;
JSONArray jr = new JSONArray(rep.getPropertyAsString(0));
JSONObject jb = (JSONObject) jr.get(0);
amount_customers = jb.getInt("count");
}catch (Exception e){
Log.e("Error:", e.toString());
}
}
});
return amount_customers;
}
誰でもそれが何であるかについて何か考えがありますか?
編集:あなたの答えはすべて正しいので、すべての答えを正しいとマークしました。私はそれらに従って問題を解決します。ありがとうございました。