我正在为我的应用做一些更新,我想让用户从两个不同的(虽然非常相似)用户界面中进行选择。我已经设置了不同的样式,但我仍然是构建应用程序的新手。
基本上这就是我想要发生的事情:
在第一次启动时,我创建了一个启动画面,其中包含两个按钮和说明(如果要选择哪个UI)并在某处存储他们的选择
在他们做出决定后的任何发布中,将他们发送到他们选择的用户界面,而不是显示启动画面
有一个选项(在选项菜单中的某个位置)允许他们更改应用程序的UI
我遇到的唯一问题是启动画面的java。如果有人可以帮助我,那么我应该能够自己完成剩下的工作。
提前致谢!
答案 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();
}
}