2012-04-02 7 views
0

私は自分のアプリにいくつかの改装を施しています。私は、ユーザーが2つの異なるUI(ただし非常に似ている)から選択できるようにしたいと考えています。私は既に2つの異なるスタイルを設定していますが、私はまだアプリケーションを構築するのが非常に新しいです。スプラッシュスクリーンは、環境設定に応じてアクティビティを開始しますか?

  • を最初の起動時に(彼らがしたいどのUI選択に何をすべきかについて私は2つのボタンと命令で作成したスプラッシュ画面を示しています。基本的にはここに

    は私が起こるしたいんですよ彼らの決定は、オプションのどこかで(

  • オプションを持ってスプラッシュ画面を表示し、彼らが選択したUIに送信していない)と、彼らが行った後に任意の打ち上げでは自分の好きなどこか

  • を保存アプリケーションのUIを変更できるようにします。

唯一問題となるのは、スプラッシュ画面用のJavaです。もし誰かが私にそれを手伝ってもらえれば、私は自分自身で残りの部分を処理することができなければなりません。

ありがとうございます!

答えて

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

を試してみて、これを試してみてください!その小さなコードのおかげでありがとう。今私はちょうどそれらのもののいくつかをタイマーの代わりにボタンクリックで行う方法を見つけなければならない=) – Andrew

+0

ここでは、タイマはスプラッシュ画面の遅延のために使用しています、あなたはそれをボタンクリックに設定して、ボタンをクリックしてsharedprefに保存し、次回に表示する画面の値を使って行うことができます。 – wolverine

+0

そのコードで少し作業した後、私は欲しいものを正確に得ることができました。どうもありがとうございました! – Andrew

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(); 
} 
} 
関連する問題