入力した情報に対して本質的に選択クエリを実行するブラックベリーアプリを持っているので、「5」と入力するとselect * from table where id=5
結果が返されます。ただし、この句のelseステートメントは「結果が見つかりません」を返すはずです。以下に投稿されたコード:
public void onResponse(String data, int code) {
final Vector vehicleInfo = jasonParser.parseVechicleResponse(data);
if(vehicleInfo.size() > 0 ){
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
removeLoader();
UiApplication.getUiApplication().pushScreen(new VehicleSearchResultScreen(etfVehicleInfo.getText(),vehicleInfo));
}
});
}else{
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
removeLoader();
Dialog.alert("No Results found.");
}
});
}
}
このコードの問題は、vehicleinfo.size() = 0
else ステートメントが実行されない場合です。実行されるコードは、私のエラー コードである以下に投稿されたコードです。コレクションエラーが発生したときに呼び出されるはずです。したがって、基本的に、レコードが見つからない場合、接続エラーの文字列が表示され、このelseステートメントが実行されていない理由がまったくわかりません。またはそれは実行され、次のステートメントによってオーバーランされますか?
public void onError(final String data, int code) {
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
removeLoader();
Dialog.alert("No Results Found!");
}
});
}
コードをパースする
public Vector parseVehicleResponse(String response){
Vector vector = new Vector();
try{
JSONObject jsonVehicleObject = new JSONObject(response);
VehicleObject vehicle = new VehicleObject();
vehicle.setChassisNum(jsonVehicleObject.getString("chassis_no"));//chassis_num
vehicle.setEngineNum(jsonVehicleObject.getString("engine_no"));//engine_num
vector.addElement(vehicle);
}catch(Exception e){
System.out.println("JSONResponseParser.parseNewsHeadlines() " + e );
}
return vector;
}
}
ジェイソン
// Return encoded with JSON
$result = array(
"chassis_no"=>$chassis_no,
"engine_no"=>$engine_no,
);