質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

1回答

1101閲覧

android studioでのボタン遷移せずに落ちてしまう件について

nankadekai

総合スコア15

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/10/22 11:28

編集2018/10/23 00:59

前提・実現したいこと

androidstudioで4択クイズアプリを作っていてdatabaseから問題を表示させたいのですが、最初のスタートボタンを押すとアプリが落ちてしまいます。
そこでスタートボタンを押したら正常にdatabaseに登録した問題がクイズ画面に表示されるようにしたいです。

発生している問題・エラーメッセージ

問題を表示させるプログラムを打つ前までは正常にスタートボタンを押してから問題画面まで遷移していたのですが、そのプログラムを打ってからエラーメッセージなど出ないもののアプリが落ちてしまいます。
よろしくお願いいたします。

該当のソースコード

関係しそうなソースコードを張っておきます

**SecondActivity.java** package com.quiz.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.TextView; import static com.quiz.myapplication.R.layout.activity_second; public class SecondActivity extends AppCompatActivity { String QuestionNo; String Seikai; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(activity_second); Intent intent = getIntent(); QuestionNo = intent.getStringExtra("QuestionNo"); **ここから~~** } @Override protected void onResume() { super.onResume(); // 画面↑にあるテキストを「クイズNo. + 問題No で表示 ((TextView)findViewById(R.id.textNo)).setText("クイズNo." + QuestionNo); // 問題文セット処理呼び出し setQuestion(); } // 問題文セット処理 private void setQuestion(){ DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db = dbHelper.getReadableDatabase(); String sql = "SELECT Pref, ans0, ans1, ans2, ans3, ans4 FROM quiz WHERE _id=" + QuestionNo; // SQL文を実行してカーソルを取得 Cursor c = db.rawQuery(sql, null); c.moveToFirst(); // データベースから取ってきたデータを変数にセット String monday = c.getString(c.getColumnIndex("Pref")); String Choice1 = c.getString(c.getColumnIndex("ans1")); String Choice2 = c.getString(c.getColumnIndex("ans2")); String Choice3 = c.getString(c.getColumnIndex("ans3")); String Choice4 = c.getString(c.getColumnIndex("ans4")); Seikai = c.getString(c.getColumnIndex("ans0")); // 答え // データベースのクローズ処理 c.close(); db.close(); ((TextView)findViewById(R.id.textQuestion)).setText(monday); ((Button)findViewById(R.id.button1)).setText(Choice1); ((Button)findViewById(R.id.button2)).setText(Choice2); ((Button)findViewById(R.id.button3)).setText(Choice3); ((Button)findViewById(R.id.button4)).setText(Choice4); } **~~ここまでのプログラムを打つと落ちてしまいます** // 選択肢がクリックされた時の処理 public void onClick(View v){ } } **DatabaseHelper.java** package com.quiz.myapplication; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Context context) { super(context, "quiz.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { // テーブルの作成 db.execSQL("CREATE TABLE quiz " + "(" + "_id INTEGER PRIMARY KEY AUTOINCREMENT" + ", Pref TEXT" + ", ans0 TEXT" + ", ans1 TEXT" + ", ans2 TEXT" + ", ans3 TEXT" + ", ans4 TEXT" + ")"); // 初期データ投入 db.execSQL("INSERT INTO quiz(Pref,ans0, ans1, ans2, ans3, ans4,) values ('ああ','いい','うう','ええ','おお','か');"); db.execSQL("INSERT INTO quiz(Pref,ans0, ans1, ans2, ans3, ans4,) values ('herj','uje','rhe','he','fa','w');"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } **追記** **MainActivity ** package com.quiz.myapplication; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // idがtransitionのボタンを取得 Button button = (Button) findViewById(R.id.transition); // clickイベント追加 button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { // インテント作成 第二引数にはパッケージ名からの指定で、遷移先クラスを指定 Intent intent = new Intent(MainActivity.this, com.quiz.myapplication.SecondActivity.class); // Activity起動 startActivity(intent); } }); }

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/22 11:39

エラーを記載しましょう。また、ご自分でデバッグされてから質問したほうがよいですよ。デバッグの仕方がわからないなら、その旨を質問としたほうがいいです。
nankadekai

2018/10/22 12:01

デバッグをしてエラーメッセージが出なくなっても落ちてしまうので質問させていただきました。
退会済みユーザー

退会済みユーザー

2018/10/22 12:05

うーん。。。そんなことあるのかな。デバッガでブレークポイントをセットして、どこまで動くかとかは試されましたか?ビルド自体はできているのですよね?
nankadekai

2018/10/22 12:16

ビルド自体はできてアプリも起動できるのですが、ソースコードにあるここからここまでと記載してあるところを記載するとスタートボタンを押してクイズ画面に遷移するところで落ちてしまいます。ここからここまでのところを抜いて再度ビルドすると正常にクイズ画面まで遷移したのでそこが問題だと思うのですが原因がわからないです・・
退会済みユーザー

退会済みユーザー

2018/10/22 12:32

とりあえず、落ちる前のところにブレークポイントをセットして、一行ずつ実行させてみましょう。そうすれば、原因の箇所を絞り込めるはず。 また、落ちる際に出る例外をキャッチしそこねていないか確認するのも有効です。unhandredexceptionでぐぐってみてください
swordone

2018/10/22 17:49

この画面に飛ばすためのIntentはどこから飛ばしていますか?
nankadekai

2018/10/23 00:58

MainActivityから飛ばしていまして、ソースコードも追記しておきます。
guest

回答1

0

これで行くとQuestionNoがnullになりますが、それはいいのですか?

投稿2018/10/23 01:20

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nankadekai

2018/10/23 01:47

本来は問題番号が出るようにしたかったのですが間違えてました...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問