2012-07-10 44 views
0

有人可以告訴我爲什麼它不起作用嗎? eclipse在我編譯時沒有顯示任何錯誤,但android模擬器在76行崩潰:「intrebare.setText(」Intrebarea「+ i + 1 +」:「+ intrebari [i]);」整個程序是這樣的:Android模擬器崩潰 - 增量不起作用

package com.example.testpsiho1; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.pm.ActivityInfo; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.app.AlertDialog; 
import android.support.v4.app.NavUtils; 
public class TestPsiho extends Activity { 
public static Button btna, btnb, btnc; 
public static TextView titlu, intrebare; 
public static String[] intrebari = {"intrebare 1", "intrebare 2", "intrebare 3"}; 
public static String[] raspunsuriA = {"rasp a 1", "rasp a 2", "rasp a 3"}; 
public static String[] raspunsuriB = {"rasp b 1", "rasp b 2", "rasp b 3"}; 
public static String[] raspunsuriC = {"rasp c 1", "rasp c 2", "rasp c 3"}; 
public static String[] rezultate = {"rezultatul pentru cele mai multe rasp a", "rezultatul pentru cele mai multe rasp b", "rezultatul pentru cele mai multe rasp c"}; 
public static int a=0, b=0, c=0, i=1; 
public static String rezultat=""; 
AlertDialog.Builder alert; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_test_psiho); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

} 
public void click(View v){ 
     btna=(Button)findViewById(R.id.btna); 
     btnb=(Button)findViewById(R.id.btnb); 
     btnc=(Button)findViewById(R.id.btnc); 
     intrebare=(TextView)findViewById(R.id.intrebare); 
     if(i<4){ 
     if (v.equals(btna)) a++; 
     if (v.equals(btna)) b++; 
     if (v.equals(btna)) c++; 

     intrebare.setText("Intrebarea " + i+1 + ": " + intrebari[i]); 
     btna.setText(raspunsuriA[i]); 
     btnb.setText(raspunsuriB[i]); 
     btnc.setText(raspunsuriC[i]); 

     } 
     if(i==4){ 

      if (a >= b && a >= c){ 
       alert=new AlertDialog.Builder(this); 

        alert.setTitle("bla bla bla"); 
      } 

    } 
     i++; 

} 
} 
+0

你得到什麼錯誤?你可以發佈logcat嗎? – thegrinner 2012-07-10 17:53:42

+0

每當我看到'foo [i]',我的直覺反應就是一個'IndexOutOfBoundsException'。你可以發佈你的LogCat來顯示究竟是什麼錯誤? – 2012-07-10 18:07:18

回答

0

它不會因爲你的工作, 「我+ 1」假定爲一個字符串。

我不知道它是最好的選擇,但你可以解決你的問題與更換您的setText方法:

intrebare.setText(String.formatString("Intrebarea %s: ", i+1).concat(intrebari[i])); 
3

你需要用你的增量:

(i + 1) 

如:

intrebare.setText("Intrebarea " + (i+1) + ": " + intrebari[i]); 
+0

試過了......不行......我不知道問題出在哪裏......我在這工作了3個多小時:( – 2012-07-10 17:59:23

+0

或者也許我的邏輯不好......什麼你說男人嗎?這是合乎邏輯的我寫的代碼...因爲我想不出更好的方法來推動按鈕,然後,根據按鈕上的答案來顯示我適合的類別 – 2012-07-10 18:04:08