我开发了一个应用程序,我希望将我的第一页作为条款和条件活动,然后如果用户接受它,则再也不会在该设备上显示。如果用户拒绝条款和条件"活动"每次申请开始时都会显示。
我的问题是"我该如何实现代码?"
我做了一个共享偏好布尔检查,但问题是ACTIVITY只打开一次,即使用户没有点击接受按钮,它也不会在第二次运行中显示。
请帮我解决这个问题?
查看我的代码
$original_array = Array(
'53_0.1',
'53_0.3',
'54_0.2',
'54_0.1',
'54_0.1',
'54_0.19',
'56_0.19',
'56_0.50'
);
foreach ($original_array as $v) {
$result[strstr($v, "_", true)] = $v;
}
var_export(array_values($result));
答案 0 :(得分:0)
在接受条件
后提交活动时,在类条款和条件中使用此代码private void showTermsandConditions() {
SharedPreferences prefs = getSharedPreferences("prefs", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("agreed", true);
editor.apply(
);
}
答案 1 :(得分:0)
您可以在 AndroidMainfest.xml的启动器活动中使用 AlertDialog ,并在{em>启动器活动中使用Checkbox
和Button
来执行此操作或者根据您的选择将Activity
放入Button
。要在用户已经接受它的情况下获得控制权,请将值放在 SharedPreferences 文件中。所以 Preferences.class 就像:
import android.content.Context;
import android.content.SharedPreferences;
public class Preferences {
private Context mContext;
private SharedPreferences preferences;
private SharedPreferences.Editor editor;
private String FILE_NAME = "app.Preferences";
private int MODE = Context.MODE_PRIVATE;
private String KEY_THERMS = "KEY_THERMS";
public Preferences(Context context) {
mContext = context;
preferences = mContext.getSharedPreferences(FILE_NAME, MODE);
editor = preferences.edit();
}
public void setTherms(String value) {
editor.putString(KEY_THERMS, value);
editor.commit();
}
public String getTherms() {
return preferences.getString(KEY_THERMS, "NO");
}
}
在启动器活动中将包含以下内容:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_therms);
Preferences preferences = new Preferences(this);
String therms = preferences.getTherms();
if(therms.equals("YES")){
Intent intentMain = new Intent(this, MainActivity.class);
startActivity(intentMain);
}else{
//show therms to accept
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
preferences.setTherms("YES");
}
});
}
}
这只是解决问题的示例模型。有很多方法可以做到。