【问题标题】:How to make this code working once?如何使此代码工作一次?
【发布时间】:2013-12-02 22:07:23
【问题描述】:

我需要制作这部分代码

protected void onCreate(Bundle savedInstanceState) {
    openingCount++;
    setContentView(R.layout.activity_main);
    Drawable d=getResources().getDrawable(R.drawable.actionbar_background);  
    getActionBar().setBackgroundDrawable(d);
    // Create the adView.
    super.onCreate(savedInstanceState);
    if (openingCount == 1){
        AlertDialog.Builder builderSingle = new AlertDialog.Builder(
                MainActivity.this);
        builderSingle.setIcon(R.drawable.ic_launcher);
        builderSingle.setTitle("Select A Server:");
        final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                MainActivity.this,
                android.R.layout.select_dialog_singlechoice);
        arrayAdapter.add("North America");
        arrayAdapter.add("EU West");
        arrayAdapter.add("EU North-East");
        arrayAdapter.add("LatinoAmerica Sur");
        builderSingle.setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });

        builderSingle.setAdapter(arrayAdapter,
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        selectedLink = siteList[which];
                        selectedServer = serverList[which];
                        ParsingPaginaWeb parsing = new ParsingPaginaWeb();
                        parsing.execute("");
                    }
                });
        builderSingle.show();
    }protected void onCreate(Bundle savedInstanceState) {
    openingCount++;
    setContentView(R.layout.activity_main);
    Drawable d=getResources().getDrawable(R.drawable.actionbar_background);  
    getActionBar().setBackgroundDrawable(d);
    // Create the adView.
    super.onCreate(savedInstanceState);
    if (openingCount == 1){
        AlertDialog.Builder builderSingle = new AlertDialog.Builder(
                MainActivity.this);
        builderSingle.setIcon(R.drawable.ic_launcher);
        builderSingle.setTitle("Select A Server:");
        final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                MainActivity.this,
                android.R.layout.select_dialog_singlechoice);
        arrayAdapter.add("North America");
        arrayAdapter.add("EU West");
        arrayAdapter.add("EU North-East");
        arrayAdapter.add("LatinoAmerica Sur");
        builderSingle.setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });

        builderSingle.setAdapter(arrayAdapter,
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        selectedLink = siteList[which];
                        selectedServer = serverList[which];
                        ParsingPaginaWeb parsing = new ParsingPaginaWeb();
                        parsing.execute("");
                    }
                });
        builderSingle.show();
    }

运行一次。我希望对话框仅在应用程序启动时显示,但每次我启动这个的子 Activity,然后按回,对话框就会显示...

我该如何解决这个问题?我尝试了很多“技巧”,但都没有奏效......

谢谢!

【问题讨论】:

  • 将此计数保存在 sharedpreference 中的简单增量中
  • 除非您保存在sharedPreferences 中,否则您的openingCount 将始终为0。
  • 您真的想在每次应用启动时都请求服务器吗?
  • 在 android 中启动应用的概念相当模糊,但我想静态布尔集和测试会非常接近。

标签: java android android-activity dialog


【解决方案1】:

您需要保存一个值,该值指示该对话框之前是否已显示。

SharedPreferences 是一个不错的选择。

https://developer.android.com/reference/android/content/SharedPreferences.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 2019-10-02
    • 2020-07-02
    • 2013-09-26
    • 2019-11-11
    • 2020-09-20
    相关资源
    最近更新 更多