3

私のアプリケーションには、アプリケーションが起動するとすぐに起動する警告ダイアログがあります。アクティビティがインストールされた後に最初に起動されたときにのみ表示したいので、ユーザーがアプリケーションを削除してから再度インストールしない限り、再びポップアップしalertDialogたくありません。alertDialogこの方法をどのように達成できるかを調べ、適切なコードを書くことを学ぼうとしましたが、適切に実行できないようです。誰かがこの方法を達成し、この問題を回避するのを手伝ってくれますか?

    public class MainActivity extends Activity {


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

      SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    boolean initialDialogDisplayed = preferences.getBoolean("InitialDialog", false);
    if (!initialDialogDisplayed) {
        Editor editor = preferences.edit();
        editor.putBoolean("InitialDialog", true);
        editor.commit();


final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);

        alertDialog.setTitle("Alert");
        alertDialog.setIcon(R.drawable.ic_launcher);
        alertDialog.setMessage("Dialog");

        alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {

            }
         });

        alertDialog.show();
                final EditText et = (EditText) findViewById(R.id.editText1);
                Button getAnswer = (Button) findViewById(R.id.button1);
                getAnswer.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {       
                        if (et.getText().toString().length()==0) {
                            Toast.makeText(getApplicationContext(),"Can't Be Blank!",Toast.LENGTH_LONG).show();             

                        }else{
                            EditText et = (EditText) findViewById(R.id.editText1);
                            String searchTerm = et.getText().toString().trim();         
                            Intent in = new Intent(MainActivity.this, ListView.class);
                            in.putExtra("TAG_SEARCH", searchTerm);
                            startActivity(in);
                        }

                    }
                });
            }
         }


        @Override
        protected void onStop() {
            // TODO Auto-generated method stub
            super.onStop();
        }}
4

2 に答える 2

3

共有設定を使用して、ダイアログが既に表示されているという事実を保存できます。ダイアログの表示に値を保存し、それを読み取って、再度表示する必要があるかどうかを確認する必要があります。

    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    boolean initialDialogDisplayed = preferences.getBoolean("InitialDialog", false);
    if (!initialDialogDisplayed) {
        Editor editor = preferences.edit();
        editor.putBoolean("InitialDialog", true);
        editor.commit();

        // Display the dialog here
    }
于 2013-09-08T00:59:01.937 に答える
3

SharedPreferences を介してフラグ値を保存できます。

 SharedPreferences settings = getSharedPreferences("pref_name", 0);
 boolean installed = settings.getBoolean("installed", false);

if(!installed){

   //showDialog

   SharedPreferences.Editor editor = settings.edit();
   editor.putBoolean("installed", true);
   editor.commit();

}

リンク: http://developer.android.com/guide/topics/data/data-storage.html#pref

于 2013-09-08T01:01:04.067 に答える