2017-04-18 10 views
0

前のレイアウトのボタンでこの新しいアクティビティを開こうとすると、アプリがクラッシュして明白な理由がなくなります。 私のコードはこれです:レイアウトを塗りつぶすと、エラーなしでアプリケーションが動的にクラッシュする

public class Main3Activity extends AppCompatActivity { 


private int limitsImages[] = {R.drawable.onelimits, R.drawable.twolimits, R.drawable.threelimits, R.drawable.fourlimits, R.drawable.fivelimits, R.drawable.sixlimits, 
     R.drawable.sevenlimits, R.drawable.eightlimits, R.drawable.ninelimits, R.drawable.tenlimits}; 

private String answersLimits[] = {"-9", "2", "1/10", "1/6", "1/2", "12", "1", "2/3", "5/6", "1/4"}; 

private String choicesLimits[][] = {{"-19", "19", "-9", "2"},{"0", "-2", "Does not exist", "2"}, {"Does not exist","1/5","0","1/10"},{"1/6","1/5","1/4","1"} 
,{"1","1/2","0","Does not exist"},{"0","4","12","10"},{"0","1","1/2","2/3"},{"2/3","1","3/2","0"},{"1","2/6","5/6","4"},{"1/4","1" 
     ,"Does not exist","4"}}; 


private TextView questionNum; 
private TextView questionTxt; 
private ImageView questionImage; 
private CheckBox choiceOne; 
private CheckBox choiceTwo; 
private CheckBox choiceThree; 
private CheckBox choiceFour; 

private static int testIdentifier=0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main3); 

    questionNum = (TextView) findViewById(R.id.questionNumber); 
    questionTxt = (TextView) findViewById(R.id.questionText); 
    questionImage = (ImageView) findViewById(R.id.questionImage); 
    choiceOne = (CheckBox) findViewById(R.id.choice1); 
    choiceTwo = (CheckBox) findViewById(R.id.choice2); 
    choiceThree = (CheckBox) findViewById(R.id.choice3); 
    choiceFour = (CheckBox) findViewById(R.id.choice4); 

    //choicesLimits[4][3]=getString(R.string.doesntexist); 
    //choicesLimits[9][2]=getString(R.string.doesntexist); 



    startLimitsQuestion(testIdentifier); 




} 

public void startLimitsQuestion(int questionNum) { 
    this.questionNum.setText(questionNum+1+"/10"); 
    questionTxt.setText(getString(R.string.limitsQ)); 
    questionImage.setImageResource(limitsImages[questionNum]); 
    choiceOne.setText(choicesLimits[questionNum][1]); 
    choiceTwo.setText(choicesLimits[questionNum][2]); 
    choiceThree.setText(choicesLimits[questionNum][3]); 
    choiceFour.setText(choicesLimits[questionNum][4]); 


}  

サブ質問:のonCreate()メソッドの前に私の初期化と宣言が正しいかどうか、私は少し悩んでてきました。

編集:あなたは、クリックした後、それがクラッシュしたことを言ったレイアウトファイル

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main2" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@color/colorPrimaryDark" 
    tools:context="com.example.learnmath.Main2Activity" 
    > 


    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/button4" 
     android:background="@color/colorPrimary" 
     android:textColor="@android:color/black" 
     android:layout_marginTop="27dp" 
     android:layout_below="@+id/textView3" 
     android:layout_alignLeft="@+id/button5" 
     android:layout_alignStart="@+id/button5" 
     android:text="@string/quadratics" /> 

    <Button 
     android:text="@string/derivatives" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/button6" 
     android:background="@color/colorPrimary" 
     android:textColor="@android:color/black" 
     android:layout_centerVertical="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginRight="18dp" 
     android:layout_marginEnd="18dp" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:srcCompat="@drawable/timetostart" 
     android:id="@+id/imageView" 
     android:layout_alignTop="@+id/button4" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="22dp" 
     android:layout_above="@+id/button6" /> 

    <Button 
     android:text="@string/limits" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/button5" 
     android:background="@color/colorPrimary" 
     android:textColor="@android:color/black" 
     android:layout_marginTop="35dp" 
     android:layout_below="@+id/button4" 
     android:layout_alignLeft="@+id/button6" 
     android:layout_alignStart="@+id/button6" 
     android:elevation="0dp" 
     android:onClick="limitsQuiz" /> 

    <ImageView 
     android:layout_width="200dp" 
     android:layout_height="200dp" 
     app:srcCompat="@drawable/mathtest" 
     android:id="@+id/imageView2" 
     android:layout_marginRight="46dp" 
     android:layout_marginEnd="46dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignRight="@+id/button6" 
     android:layout_alignEnd="@+id/button6" /> 

    <TextView 
     android:text="@string/tests" 
     android:typeface="monospace" 
     android:textStyle="italic" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="@android:color/holo_orange_light" 
     android:id="@+id/textView3" 
     android:textSize="35sp" 
     android:shadowColor="@android:color/background_light" 
     android:layout_alignParentTop="true" 
     android:layout_alignLeft="@+id/imageView2" 
     android:layout_alignStart="@+id/imageView2" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:srcCompat="@drawable/index" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:id="@+id/imageView3" 
     android:onClick="homePage" /> 

</RelativeLayout> 
+1

をクラッシュすることができない場合のクラッシュを検出するために、クラッシュを報告するあなたのlogcatを投稿することができ – vishnumm93

+0

はあなたが – CrazyMind

+0

インテントフィルタをマニフェストにあなたの活動をすることができます宣言持っていますあなたのレイアウトファイルを追加してください –

答えて

0

。だから、いくつかの問題がonclickにそこにあるでしょう。私たちはあなたのコードをonclickからフォローする必要があります。上のスニペットは最初の質問表示を示しているだけで、テスト識別子がインクリメントされていない点を除いて正しいものです。

そのスニペットの完全なクラスコードを投稿してください。また、logcatエラーを与える

私が推測できるものは、マニフェストまたはエラーのdllimg onclickへのアクセスを登録する際にエラーがどこにあるべきかを示しています。 arrayoutofboundsでもかまいません。

+0

どうすれば私のlogcatを投稿するのですか?アンドロイドスタジオを再起動する必要があります。一度エラーを複製してからアップロードしてください。私はこのクラスの実装が完了していないので、これは全体のスニペットです –

+0

これはlogcat上でエラーが見つかりました。なぜ他のログに気付かなかったのか分かりません。結局のところ愚かな間違い。 –

+0

それはそれが解決したことを聞いて良い音:..) – PranavKAndro

0

問題を解決しました。 AndroidManifest.xmlで宣言したアプリのテーマは適切ではありません。あなたの活動にAppCompatActivityを拡張しているので、特定のアクティビティやアプリケーションにAppcompatテーマを使用する必要があります。
現在のアプリのテーマをandroid:theme="@style/Theme.AppCompat.Light"に変更してください。AndroidManifest.xmlファイルで問題が解決されます。

注::あなたの初期化と宣言は完璧で、あなたのonClickメソッドは問題ありません。このAppThemeは唯一の問題です。あなたが私を取得していないかどうか教えてください。

+0

まだテーマを変更したが、クラッシュする。編集:上記のように私はマニフェストで私の活動を宣言していない。だから私は私の主な活動のためだけにテーマを変更したと思いますが、私はそのマニフェストの活動を宣言し、この特定の活動のテーマを変えるべきですか? –

+0

はい、AndroidManifest.xmlファイルでそのアクティビティを宣言してから、提案したようにテーマを変更する必要があります。あなたの問題は解決されます。 –

関連する問題