Wenn meine Anwendung zum ersten Mal gestartet wird, möchte ich den Benutzer auf einen Konfigurationstyp von Zeichenfolge verweisen. Ich verwende dazu gemeinsame Einstellungen. Wenn der Benutzer die Anwendung zum ersten Mal ausführt, sollte die freigegebene Einstellungsdatei leer sein. Es prüft zunächst, ob dem Schlüssel "configured" ein boolescher Wert zugeordnet ist. Falls nicht, sollte es zu der Aktivität namens preferences umgeleitet werden. Es scheint jedoch einfach darüber hinweg zu "überspringen"; anstatt zu Mittag oder zum Frühstück zu gehen. Ich habe sogar versucht, die gemeinsamen Einstellungen ohne Erfolg zu löschen. Irgendeine Idee, was das Problem sein könnte?Gemeinsam genutzte Java/Android-Einstellungen - Keine Anweisung zum Korrigieren der Aktivität
launch_activity
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class launch_activity extends AppCompatActivity {
// private PendingIntent pending;
/*public void startAlarm() {
AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
GregorianCalendar greg = new GregorianCalendar();
Calendar now = Calendar.getInstance();
greg.set(now.get(Calendar.YEAR), now.get(Calendar.MONTH), now.get(Calendar.DAY_OF_MONTH), 10, 30);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, greg.getTimeInMillis(), 1000 * 60 * 60 * 24, pending);
}*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launch_activity);
// set alarm
// Intent alarmIntent = new Intent(this, alarmReceiver.class);
// pending = PendingIntent.getBroadcast(launch_activity.this, 0, alarmIntent, 0);
// startAlarm();
}
protected void onStart() {
super.onStart();
SharedPreferences preferences = getSharedPreferences("config", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
if((preferences.getBoolean("configured", false)) == false) { // app has not yet been set-up
Intent intent = new Intent(this, midamcorp.com.burgerkingapp.preferences.class);
intent.putExtra("setUp", true);
startActivity(intent);
}
Calendar cal = Calendar.getInstance();
if(cal.get(Calendar.HOUR_OF_DAY) > 4 && (cal.get(Calendar.HOUR_OF_DAY) <= 10 && cal.get(Calendar.MINUTE) < 28))
{
Intent intent = new Intent(this, breakfastHome.class);
startActivity(intent);
} else {
Intent intent = new Intent(this, lunchHome.class);
startActivity(intent);
}
}
protected void onResume() {
super.onResume();
SharedPreferences preferences = getSharedPreferences("config", MODE_PRIVATE);
if(!(preferences.getBoolean("configured", false))) { // app has not yet been set-up
Intent intent = new Intent(this, midamcorp.com.burgerkingapp.preferences.class);
intent.putExtra("setUp", true);
startActivity(intent);
}
Calendar cal = Calendar.getInstance();
if(cal.get(Calendar.HOUR_OF_DAY) > 4 && (cal.get(Calendar.HOUR_OF_DAY) <= 10 && cal.get(Calendar.MINUTE) < 28))
{
Intent intent = new Intent(this, breakfastHome.class);
startActivity(intent);
} else {
Intent intent = new Intent(this, lunchHome.class);
startActivity(intent);
}
}
}
Vorlieben Aktivität
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.support.v7.app.ActionBar;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.preference.RingtonePreference;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.Toast;
import java.util.List;
public class preferences extends AppCompatActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.configure_icon:
Intent i = new Intent(this, preferences.class);
startActivity(i);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private View.OnClickListener preferencesListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent;
switch (v.getId()) {
case R.id.back_button:
intent = new Intent(getBaseContext(), launch_activity.class);
startActivity(intent);
break;
case R.id.logoutButton:
SharedPreferences preferences = getSharedPreferences("config", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("loggedIn", false);
editor.commit();
intent = new Intent(preferences.this, launch_activity.class);
startActivity(intent);
break;
/* case R.id.changeButton:
intent = new Intent(preferences.this, login.class);
startActivity(intent);
break; */
}
}
;
};
@Override
public void onCreate(Bundle savedInstanceState) {
SharedPreferences preferences = getSharedPreferences("config", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preferences);
Button back = (Button) findViewById(R.id.back_button);
// Button change = (Button)findViewById(R.id.changeButton);
Button logout = (Button) findViewById(R.id.logoutButton);
back.setOnClickListener(preferencesListener);
// change.setOnClickListener(preferencesListener);
logout.setOnClickListener(preferencesListener);
}
public void onStart() {
super.onStart();
Intent i = getIntent();
SharedPreferences preferences = getSharedPreferences("config", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
if (i.getBooleanExtra("setUp", false)) { // if app is starting for the first time set
editor.putBoolean("configured", true);
editor.commit();
} else {
if (!(preferences.getBoolean("loggedIn", false))) { // user is not logged in, redirect
Intent intent = new Intent(this, login.class);
startActivity(intent);
}
}
}
public void onRadioButtonClicked(View view) {
SharedPreferences preferences = getSharedPreferences("config", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
boolean isChecked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case R.id.radio_boards:
if (isChecked) {
editor.putInt("Location", 2);
editor.commit();
}
break;
case R.id.radio_speciality:
if (isChecked) {
editor.putInt("Location", 3);
editor.commit();
}
}
}
}
Thanks so much!