我真的不能看到我的代碼上的問題。
startActivity()方法在下面的代碼中不起作用。Android的startActivity()不適用於循環內
即使Toast.makeText()不起作用。
如果我在for循環之前放置了toast循環,但是我不能在for循環之前放置startActivity,因爲有錯誤。
//I think nothing special here
case R.id.bGeneral:
break;
case R.id.bProfessional:
type = "professional";
new loadQuestioners().execute(type);
break;
@Override
protected void onPostExecute(JSONObject result) {
// TODO Auto-generated method stub
pDialog.dismiss();
int success;
try {
success = result.getInt(TAG_SUC);
if (success == 0) {
Toast.makeText(getApplicationContext(),
result.getString("message"), Toast.LENGTH_LONG)
.show();
} else if(success == 1){
Toast.makeText(getApplicationContext(), result.getString("message"), Toast.LENGTH_LONG).show(); //When I put it here it work
MyClass addQuest = new MyClass();
JSONArray jarray = result.getJSONArray("assessments");
for (int x = 0; x < jarray.length(); x++) {
JSONObject j = jarray.getJSONObject(x);
String question = j.getString("Ass_Quesion");
String a = j.getString("Ass_Opt_A");
String b = j.getString("Ass_Opt_B");
String c = j.getString("Ass_Opt_C");
String d = j.getString("Ass_Opt_C");
String answer = j.getString("Ass_Answer");
addQuest.addQuestion(question, a, b, c, d, answer);
}
//Toast is also not working here
Bundle assessmentType = new Bundle();
Intent questioners = new Intent (Assessments.this, Questioners.class);
assessmentType.putString("assessmentType", type);
questioners.putExtras(assessmentType);
startActivity(questioners); //NOT WORKING HERE
finish();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
UPDATE THX對我的幫助我findout,我在這裏有沒有錯誤。我認爲這裏的錯誤是forloop沒有將問題添加到我的構造函數中,所以當我的Questioner類在onCreate上獲取ArrayList的索引時,它會發生錯誤。
public class MyClass {
private static ArrayList<ArrayList<String>> questioners = new ArrayList<ArrayList<String>>();
private static int col = 0;
public void addQuestion(String question, String a, String b, String c, String d, String answer){
this.questioners.add(new ArrayList<String>());
questioners.get(col).add(question);
questioners.get(col).add(a);
questioners.get(col).add(b);
questioners.get(col).add(c);
questioners.get(col).add(d);
questioners.get(col).add(answer);
col++;
}
public ArrayList<ArrayList<String>> getQuestion(){
return this.questioners;
}
}
請發佈嘗試結束{block – Michael 2014-11-03 18:24:13
'assessmentType.putString(「assessmentType」,type);'......什麼是'type'?我在代碼中看不到它。 – 2014-11-03 18:26:06
檢查jarray.length()> 0,否則不起作用。 – nunofmendes 2014-11-03 18:27:10