我几乎完成了我的应用程序的第1版,并正在对其进行收尾工作。然而,在用户可以继续使用应用程序之前,我坚持使用一个对话框来接受EULA。
我将alertdialogue调用放在OnCreate方法中。这非常好用,当应用程序第一次打开或更新时,他们会看到一个带有接受拒绝按钮的模式警告框。如果他们点击拒绝,应用程序将关闭,如果他们点击接受,对话框将被取消,并显示已经初始的活动。
我要做的是让警告框显示(在oncreate中),然后不加载任何其他内容,直到按下ACCEPT或CANCEL按钮。
我应该使用stop()和resume()吗?我迷路了。
肖恩·穆利根
发布于 2019-07-16 10:09:10
您可以在onCreate中尝试此操作。
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;发布于 2019-07-16 11:41:43
我有一个单独的类,用于显示Eula以及生成和存储密钥。下面是类中正按钮和负按钮的代码:
@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方法的代码
super.onCreate(savedInstanceState);
new SimpleEula(this).show();
setContentView(R.layout.activity_main);
//loading the default fragment
loadFragment(new HomeFragment());总体目标是显示EULA并暂停onCreate的其余部分,直到在EULA显示期间做出决定。那么使用发布的解决方案,有没有一种方法可以恢复并保存肯定的按钮按下,并将其传递回OnCreate,然后使用上面发布的解决方案中的switch语句?
发布于 2019-07-16 14:07:19
所以我能够成功地编辑我所有的代码,当我去启动它时,它只是将黑色闪现为白色。不知道我到底做错了什么。
清单文件(认为可能存在问题)
<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
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);
}
}就像以前一样
new SimpleEula(this).show();应该是加载支票和/或显示Eula。然后加载原始MainActivity的startActivity。
最终结果是一个闪烁的黑白屏幕应用程序。
不太确定我哪里出错了。
https://stackoverflow.com/questions/57048815
复制相似问题