2017-01-10 9 views
0

私はこの試みた:チェックボックスをオンにした後、チェックボックスのタグを取得するにはどうすればよいですか?

private int[] intCheckBox = { 
     R.id.monCheck, 
     R.id.tueCheck, 
     R.id.wedCheck 
}; 

private CheckBox[] realCheckBox = new CheckBox[intCheckBox.length]; 

private int i; 

その後:私は、アプリを実行したときに

for (i=0;i<intCheckBox.length;i++){ 
     realCheckBox[i] = (CheckBox) findViewById(intCheckBox[i]); 
     realCheckBox[i].setTag(i); 
     realCheckBox[i].setOnCheckedChangeListener(showFinal); 
    } 

}しかし

private CompoundButton.OnCheckedChangeListener showFinal = new CompoundButton.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     String outPut2 = ""; 

     if (realCheckBox[i].isChecked()){ 
      outPut2 += realCheckBox[i].getTag(); 
      outPutText3.setText(outPut2); 

     } 

は、私は1つを確認した後にエラーが示されていましたボックスの数は、エラー:

E/AndroidRuntime: FATAL EXCEPTION: main 
       java.lang.ArrayIndexOutOfBoundsException: length=3; index=3 

私はタグや文字列を一つずつ取得する別の方法があることを知っています...しかし、私は配列を使ってint型を取得するためのさらなるコードを行うためにタグを表示したいと思います「whatIReallyWantToGet」の値:

java.util.Calendar cal = java.util.Calendar.getInstance(); 
     cal.set(Calendar.MONTH, position); 
     cal.set(Calendar.DAY_OF_WEEK, whatIReallyWantToGet); 
     cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 1); 
     int month = cal.get(Calendar.MONTH); 
     String output = ""; 
     while (cal.get(Calendar.MONTH) == month) { 
      output += cal.get(Calendar.DAY_OF_MONTH) + "/" + (cal.get(Calendar.MONTH) + 1) + ","; 
      cal.add(Calendar.DAY_OF_MONTH, 7); 
     } 

私はネット上で長い時間を探しています。しかし、使用しないでください。私は教科書やオンラインリソースからの単なる新しい学習者です。これを達成する方法を教えてください。どうもありがとうございます!

答えて

0

あなたが共有したコードから、あなたは変数iの値をリセットしていないようです。致命的な例外:メイン java.lang.ArrayIndexOutOfBoundsException:例外はあなたが配列

E/AndroidRuntimeのインデックス3アクセスしようとしていると言う理由を説明するだろう

長= 3を。インデックス= 3

関連する問題