2015-04-18 78 views
-1

我在Android Java編程中遇到了一些問題。Android應用程序在發佈bufferedRead後停止工作

這是我的情況:

  • 我想從一個文本文件中加載文本行。
  • 我會將每一行作爲一個單獨的字符串變量,將保存在ArrayList中的 。
  • 我在運行應用程序時沒有問題,但是當我按下將發送變量的按鈕時,應用程序將使用每個行作爲單獨問題的方法,但失敗。
  • 按下手機上的按鈕後,整個屏幕凍結。

我不知道如何解決這個問題。此外,我無法從logcat獲得錯誤,非常奇怪。

我是編程新手,但我盡我所能,所以任何幫助表示讚賞。請問,如果你不明白或想要更多的信息,和平。我已經修復了我得到的解決方案,但是我仍然遇到了代碼問題,我不知道如何解決它。

下面是代碼:

public void levelOne(View v)throws IOException{ 
    Intent intent = new Intent(this, pageBeforeAction.class); 
    Button buttond = (Button) findViewById(R.id.buttonOne); 
    createQuestions("hogskoleprovet.txt"); 
    startActivity(intent); 
} 

public void levelTwo(View v) throws IOException{ 
    Intent intent = new Intent(this, pageBeforeAction.class); 
    Button buttonC = (Button) findViewById(R.id.buttonTwo); 
    createQuestions("hogskoleprovet.txt"); 
    startActivity(intent); 

} 

public void createQuestions(String hogskoleprovet) throws IOException{ 


    InputStream iS = getResources().getAssets().open(hogskoleprovet); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(iS)); 

    String question = reader.readLine(); 
    String answer = reader.readLine(); 
    String answerOne = reader.readLine(); 
    String answerTwo = reader.readLine(); 
    String answerThree = reader.readLine(); 
    String answerFour = reader.readLine();  

    while(reader != null){ 
     question = reader.readLine(); 
     answer = reader.readLine(); 
     answerOne = reader.readLine(); 
     answerTwo = reader.readLine(); 
     answerThree = reader.readLine(); 
     answerFour = reader.readLine(); 
     Question q = new Question (question, answer, answerOne, answerTwo, answerThree, answerFour); 
     mQuestions.add(q); break;  }reader.close(); } 

這是我的logcat輸出:

26837-26837/com.example.arnpet.ultimatehogskoleprovet E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.example.arnpet.ultimatehogskoleprovet, PID: 26837 
java.lang.IllegalStateException: Could not execute method of the activity 
     at android.view.View$1.onClick(View.java:3969) 
     at android.view.View.performClick(View.java:4637) 
     at android.view.View$PerformClick.run(View.java:19422) 
     at android.os.Handler.handleCallback(Handler.java:733) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5479) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.reflect.InvocationTargetException 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at android.view.View$1.onClick(View.java:3964) at android.view.View.performClick(View.java:4637) 

+0

from your code,執行BufferedReader reader = new BufferedReader(new InputStreamReader(iS));''你需要輸入問題,答案,answerOne,answerTwo,answerThree和answerFour的值。你在做那個嗎? – Lal

+0

我認爲我正在那樣做。值將根據數組確定。現在我終於得到了日誌貓的錯誤: –

+0

以及錯誤是什麼?請您發佈Logcat – Lal

回答

1

你陷入無限循環,在這裏:

while (reader != null) 

reader的值在任何地方都不會設置爲null,因此您會陷入循環。

+0

但我已經將讀者等同爲null,爲什麼它應該是一個無限循環呢? –