2016-03-31 17 views
2

Uygulamam ilk kez başlatıldığında, kullanıcıyı bir yapılandırma dizesi türüne yönlendirmek istiyorum. Bunu yapmak için paylaşılan tercihler kullanıyorum. Kullanıcı uygulamayı ilk çalıştırdığında, paylaşılan tercihler dosyası boş olmalıdır. Önce "yapılandırılmış" anahtarıyla ilişkili bir boole değeri olup olmadığını kontrol eder. Değilse, tercih denilen etkinliğe yönlendirmelidir. Ancak, bunun üzerinde sadece 'atlamak' gibi görünüyor; bunun yerine öğle yemeği veya kahvaltı aktivitesine yönlendirme yapar. Paylaşılan tercihleri ​​boşa çıkarmaya çalıştım bile. Sorunun ne olabileceği hakkında bir fikrin var mı?Java/Android Paylaşılan Tercihler - Doğru etkinliğe yönlendirilmiyor

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); 
     } 

    } 
} 

tercihleri ​​aktivite

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(); 
       } 

     } 
    } 
} 

Çok teşekkürler!

cevap

1

Her zaman bu kod çalışıyor:

 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); 
    } 

deneyin böyle else sözcüğü, bir şey eklemeyi:

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); 
    } 
    else { 
     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); 
     } 
    } 
2

Size onStart 2 faaliyetlerini başlıyoruz görünüyor.

Sadece ilk bir "geri dönüş" add böyle, eğer:

   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); 
        return; //HERE---------------------------------- 
       } 
       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); 
       } 
İlgili konular