1

みんなホームボタンのあるアクティビティがあります。ボタンを押すと、「保存せずに終了しますか?」というメッセージとともに警告ダイアログが表示されます。また、ユーザーは次のオプション (ボタン) を使用できる必要があります。

1->はい

2->いいえ

3->保存して終了

しかし問題は、ホームボタンを押しても警告ダイアログが表示されないことです。

次のコードを試しました:

// これはボタンが押されたときです

public void onClick(View v) {
    // TODO Auto-generated method stub
switch (v.getId()) {

case R.id.backHome:
        final AlertDialog alertDialog = new AlertDialog.Builder(
                DataView.this).create();
        // alertDialog.setTitle("Exit Without Save ?");
        alertDialog.setMessage("Exit Without Saving");
        alertDialog.setButton("Yes", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Intent i = new Intent(DataView.this, DiaryActivity.class);
                startActivity(i);
                finish();

            }
        });

        alertDialog.setButton2("No", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                alertDialog.dismiss();

            }
        });
        alertDialog.setButton3("Save and Exit",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        rowIdreceived = getdata.getLong("row_id");
                        String title_updated = topicDisplay.getText()
                                .toString() + " ";
                        String story_updated = StoryField.getText()
                                .toString();
                        DataHolder entry = new DataHolder(DataView.this);

                        try {
                            entry.open();
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        entry.updateEntry(rowIdreceived, title_updated,
                                story_updated);

                        entry.close();
                        Intent i = new Intent(DataView.this,
                                DiaryActivity.class);
                        startActivity(i);
                        finish();

                    }
                });


        break;

DiaryActivity がメイン クラスです。

DataView は現在のアクティビティです。

はいボタンは、単に現在のアクティビティを終了し、DiaryActivity であるメイン アクティビティに戻ります。

[いいえ] ボタンをクリックすると、警告ダイアログが「閉じられ」、ユーザーは作業を保存して後で終了できます。

保存して終了ボタンは、作業をデータベースに保存し、現在のアクティビティを終了してメイン アクティビティに戻ります。

4

4 に答える 4

5

alertDialog.show(); コードに がありません.......... ダイアログを作成しましたが、表示されていません ....

alertDialog.show()休憩の直前に置く.....

于 2012-06-14T08:16:20.010 に答える
2

これを調べます。alertDialog.show();アラートダイアログを表示する呼び出し

AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Reset...");
alertDialog.setMessage("Are you sure?");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int which) {
      // here you can add functions
   }
});
alertDialog.setIcon(R.drawable.icon);
alertDialog.show();
于 2012-06-14T08:20:15.780 に答える
2

を書き忘れていましalertDialog .show();た。alertDialog の作成後でなければなりません。

于 2012-06-14T08:16:39.620 に答える