首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >你能在按下警告对话框中的按钮之前一直使用OnCreate吗?

你能在按下警告对话框中的按钮之前一直使用OnCreate吗?
EN

Stack Overflow用户
提问于 2019-07-16 09:00:42
回答 5查看 83关注 0票数 1

我几乎完成了我的应用程序的第1版,并正在对其进行收尾工作。然而,在用户可以继续使用应用程序之前,我坚持使用一个对话框来接受EULA。

我将alertdialogue调用放在OnCreate方法中。这非常好用,当应用程序第一次打开或更新时,他们会看到一个带有接受拒绝按钮的模式警告框。如果他们点击拒绝,应用程序将关闭,如果他们点击接受,对话框将被取消,并显示已经初始的活动。

我要做的是让警告框显示(在oncreate中),然后不加载任何其他内容,直到按下ACCEPT或CANCEL按钮。

我应该使用stop()和resume()吗?我迷路了。

肖恩·穆利根

EN

回答 5

Stack Overflow用户

发布于 2019-07-16 10:09:10

您可以在onCreate中尝试此操作。

代码语言:javascript
复制
case R.id.dialog_button_accept:// ACCEPT 
    setContentView(R.layout.activity_main);
    // do other things
    break;
case R.id.dialog_button_cancel:// CANCEL 
    finish();// finish this activity
    break;
票数 0
EN

Stack Overflow用户

发布于 2019-07-16 11:41:43

我有一个单独的类,用于显示Eula以及生成和存储密钥。下面是类中正按钮和负按钮的代码:

代码语言:javascript
复制
 @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            // Mark this version as read.
                            SharedPreferences.Editor editor = prefs.edit();
                            editor.putBoolean(eulaKey, true);
                            editor.commit();
                            dialogInterface.dismiss();

                        }
                    })
                    .setNegativeButton(android.R.string.cancel, new Dialog.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // Close the activity as they have declined the EULA
                            mActivity.finish();
                        }

                    });

下面是activity main OnCreate方法的代码

代码语言:javascript
复制
super.onCreate(savedInstanceState);
                new SimpleEula(this).show();
                setContentView(R.layout.activity_main);

                //loading the default fragment
                loadFragment(new HomeFragment());

总体目标是显示EULA并暂停onCreate的其余部分,直到在EULA显示期间做出决定。那么使用发布的解决方案,有没有一种方法可以恢复并保存肯定的按钮按下,并将其传递回OnCreate,然后使用上面发布的解决方案中的switch语句?

票数 0
EN

Stack Overflow用户

发布于 2019-07-16 14:07:19

所以我能够成功地编辑我所有的代码,当我去启动它时,它只是将黑色闪现为白色。不知道我到底做错了什么。

清单文件(认为可能存在问题)

代码语言:javascript
复制
<activity android:name=".ShowEula">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

ShowEula是我创建的新类。

ShowEula

代码语言:javascript
复制
package com.app.restaurant.bowzers;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class ShowEula extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        new SimpleEula(this).show();
        Intent intent2=new Intent(ShowEula.this,MainActivity.class);
        startActivity(intent2);
       }
}

就像以前一样

代码语言:javascript
复制
new SimpleEula(this).show();

应该是加载支票和/或显示Eula。然后加载原始MainActivity的startActivity。

最终结果是一个闪烁的黑白屏幕应用程序。

不太确定我哪里出错了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57048815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档