启动屏幕启动活动取决于偏好?

时间:2012-04-02 04:02:15

标签: android splash-screen preference

我正在为我的应用做一些更新,我想让用户从两个不同的(虽然非常相似)用户界面中进行选择。我已经设置了不同的样式,但我仍然是构建应用程序的新手。

基本上这就是我想要发生的事情:

  • 在第一次启动时,我创建了一个启动画面,其中包含两个按钮和说明(如果要选择哪个UI)并在某处存储他们的选择

  • 在他们做出决定后的任何发布中,将他们发送到他们选择的用户界面,而不是显示启动画面

  • 有一个选项(在选项菜单中的某个位置)允许他们更改应用程序的UI

我遇到的唯一问题是启动画面的java。如果有人可以帮助我,那么我应该能够自己完成剩下的工作。

提前致谢!

3 个答案:

答案 0 :(得分:1)

在此链接中查看答案以获取示例启动画面: Android: Splash Screen re-opens app to second page even if app is quit during splash screen 而不是使用线程超时,等待用户单击布局中的两个按钮之一并将其保存在共享首选项中。

答案 1 :(得分:1)

我有一个解决方案,只有在第一次使用共享首选项运行应用程序时才会出现启动画面。 试试这个,

public class Splash extends Activity {
    private long splashDelay = 1500;
    int counter;
    SharedPreferences app_preferences;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        app_preferences = PreferenceManager.getDefaultSharedPreferences(this);
        counter = app_preferences.getInt("counter", 1);
        System.out.println("count is..." + counter);

        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                finish();
                if (counter == 1) {
                    Intent in = new Intent(Splash.this, Yourclass1.class);
                    startActivity(in);
                } else {
                    Intent intent = new Intent().setClass(Splash.this, Yourclass2.class);
                    startActivity(hackbookIntent);
                }
                SharedPreferences.Editor editor = app_preferences.edit();
                editor.putInt("counter", +(counter + 1));
                editor.commit();

            }

        };

        Timer timer = new Timer();
        timer.schedule(task, splashDelay);
    }
}

答案 2 :(得分:0)

试试这个

public class TestActivity extends Activity {
private SharedPreferences sharedPrefs;
private Editor prefsEditor;
private static final String APP_SHARED_PREFS = "com.demo.test.Login_preferences";
private static final String APP_CHOICE = "Choice";
private static final String APP_DESIGN = "Design";
private static final String APP_DEVEL = "Develop";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    sharedPrefs = getSharedPreferences(APP_SHARED_PREFS,
            Context.MODE_PRIVATE);
    String choice = getValueforKey(APP_CHOICE);
    if(choice.length() == 0){
        setContentView(R.layout.main);
    Button design = (Button) findViewById(R.id.des);
    Button dev = (Button) findViewById(R.id.dev);

    design.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            saveKey(APP_CHOICE,APP_DESIGN);
            Intent intent = new Intent(TestActivity.this , Design.class);
            startActivity(intent);
            finish();
        }
    });

    dev.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            saveKey(APP_CHOICE,APP_DEVEL);
            Intent intent = new Intent(TestActivity.this , Develop.class);
            startActivity(intent);
            finish();
        }
    });
    }else if(choice.equals(APP_DESIGN)){
        Intent intent = new Intent(this , Design.class);
        startActivity(intent);
    }else if(choice.equals(APP_DEVEL)){
        Intent intent = new Intent(this , Develop.class);
        startActivity(intent);
    }


}

public String getValueforKey(String Key)
{
    this.sharedPrefs =getSharedPreferences(APP_SHARED_PREFS,
            Context.MODE_PRIVATE);
    return sharedPrefs.getString(Key, "");
}

public void saveKey(String Key, String value) {
    this.sharedPrefs = getSharedPreferences(APP_SHARED_PREFS,
            Context.MODE_PRIVATE);
     this.prefsEditor = sharedPrefs.edit();
    prefsEditor.putString(Key, value);
    prefsEditor.commit();
}
}