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

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

ただいまの
回答率

89.99%

android アラートダイアログ

受付中

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 1,030
退会済みユーザー

退会済みユーザー

何を書けばセットメッセージが出来るのか分かりません。場所も合っているのかよく分からなくて…
どうか教えてください<(_ _)>

public class MainActivity extends Activity {

    private ListView myListView;
    private SQLiteDatabase db;

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


    private void insertToDb(String[] regData) throws Exception {

        db.execSQL("insert into myData(" + MyDbHelper.REG_NAME + ", "
                + MyDbHelper.REG_CONTENT + ", "
                + MyDbHelper.REG_MAIL + ", "
                + MyDbHelper.REG_DATE + ")values( '" + regData[0] + "' , '" + regData[1] + "' , '" + regData[2] + "' , '" + regData[3] + "' )");
    }

    private Cursor searchToDB() throws Exception {
        Cursor c = db.rawQuery("select * from " + MyDbHelper.TABLE_NAME, null);
        return c;
    }

    public void onStart() {
        super.onStart();

        Button mainButton = (Button) findViewById(R.id.transRegButton);
        mainButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent mainIntent = new Intent(MainActivity.this, RegisterActivity.class);

                startActivity(mainIntent);
            }
        });


        myListView = (ListView) findViewById(R.id.listView);
        MyDbHelper dbHelper = new MyDbHelper(this);
        db = dbHelper.getWritableDatabase();

        String[] regData = new String[4];
        Intent intent = this.getIntent();

        if (intent != null) {

            regData[0] = intent.getStringExtra("regName");
            regData[1] = intent.getStringExtra("regContent");
            regData[2] = intent.getStringExtra("regMail");
            regData[3] = intent.getStringExtra("regDate");

            AlertDialog.Builder ab = new AlertDialog.Builder(MainActivity.this);
            ab.setTitle("登録しました");
            //searchToDBの結果を表示したい
            ab.setMessage();

            ab.show();
        }


        try {
            insertToDb(regData);
            Cursor c = searchToDB();

            String[] from = {MyDbHelper.REG_NAME, MyDbHelper.REG_CONTENT, MyDbHelper.REG_MAIL, MyDbHelper.REG_DATE};
            int[] to = {R.id.regName, R.id.regContent, R.id.regMail, R.id.regDate};

            SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.lisitem_layout, c, from, to, 0);

            myListView.setAdapter(adapter);
            myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                    String s1 = ((TextView) view.findViewById(R.id.regName)).getText().toString();
                    String s2 = ((TextView) view.findViewById(R.id.regContent)).getText().toString();
                    String s3 = ((TextView) view.findViewById(R.id.regMail)).getText().toString();
                    String s4 = ((TextView) view.findViewById(R.id.regDate)).getText().toString();

                    Log.v("name    ", "= " + s1);
                    Log.v("content", "= " + s2);
                    Log.v("mail   ", "= " + s3);
                    Log.v("date   ", "= " + s4);
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            db.close();
        }
    }
}

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

0

  Intent intent = this.getIntent(); // ←単純にこれがnull てことはないですよね?

        if (intent != null) { 
           AlertDialog.Builder ab = new AlertDialog.Builder(MainActivity.this); 
            ab.setTitle("登録しました"); 
            //searchToDBの結果を表示したい 
            ab.setMessage(”メッセージ”); 

            ab.show(); 
        } 

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/11 18:43

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setTitle("タイトル");
    alertDialogBuilder.setMessage("メッセージ");
    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();

    それでだめなら、これでどうでしょ?

    キャンセル

  • 2015/06/15 12:50

    お返事ありがとうございます。
    ダイアログに"メッセージ"という文字列を出すのでなく、searchToDBの戻り値を出したくて…分かりにくくてすみません(・ω・`)

    キャンセル

0

     try { 
            insertToDb(regData); 
            Cursor c = searchToDB(); 

            -中略-  ダイアログ処理
            ab.setMessage( c.toString() );

            以下略 

こんな感じですか?     

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/15 16:44

    回答ありがとうございます。
    試してみたのですが、「cannot resolve symbol 'c'」と表示されエラーになってしまって…

    キャンセル

  • 2015/06/16 09:29

    処理の順番ですね。

    if (intent != null) {
    regData[0] = intent.getStringExtra("regName");
    regData[1] = intent.getStringExtra("regContent");
    regData[2] = intent.getStringExtra("regMail");
    regData[3] = intent.getStringExtra("regDate");
    //アラート変数定義 ab
    AlertDialog.Builder ab = new AlertDialog.Builder(MainActivity.this);
    ab.setTitle("登録しました");
    //searchToDBの結果を表示したい
    ab.setMessage();  ← この時点でcて変数がない

    ab.show();
    }


    try {
    insertToDb(regData);
    //表示したいものを変数定義 c
    Cursor c = searchToDB();


    cより後にダイアログ表示をするようにする。
    AlertDialog.Builder ab = new AlertDialog.Builder(MainActivity.this);
    ab.setTitle("登録しました");
    //searchToDBの結果を表示したい
    ab.setMessage(c.toString());
    ab.show();

    ダイアログをメソッドに入れるのもありかもです。

    キャンセル

0

中略以下のダイアログ処理を無名クラスの中でコールしていると思うので、 final をつければエラーは解消されると思います。

こんな感じ
final Cursor c = searchToDB();  

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる