2011-12-11 20 views
1

同じアクティビティでインテントを作成するにはどうすればよいですか?Android Acitvity Intent on

私は前向きボタンと後ろ向きボタンを持つアクティビティLektionを持っています。フォワードボタンを押すと、他のパラメータだけで同じアクティビティを開始したいと考えています。 そのために、私はIntentでバンドルを送付します。

しかし、それはそうと、再び作成する予定活動イマイチ...

public class Lektion extends Activity { 
    private int rowCount = 0; 
    private ArrayList<LektionPage> lektionPages = new ArrayList<LektionPage>(); 
    private int lektionPage = 0; 
    private Bundle bundle; 

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

     bundle = this.getIntent().getExtras(); 
     String lektionNummer = bundle.getString("LektionNummer"); 
     setTitle("Lektion "+lektionNummer);  

     try{ 
      lektionPage = bundle.getInt("LektionPage"); 
     } catch(Exception e){} 

     forwardImageButton.setOnTouchListener(new OnTouchListener(){ 
      public boolean onTouch(View view, MotionEvent me) { 
       if(lektionPage == rowCount){ 
        return false; 
       } 
       Log.i("ontouch", ""+lektionPage); 
       Intent intent = new Intent(Lektion.this, Lektion.class); 
       bundle.putInt("LektionPage", lektionPage++); 
       intent.putExtras(bundle); 
       return true; 
      } 

     }); 
    } 

答えて

2

...それが役に立てば幸い。

あなたが実際に実行する意向のために

startActivity(intent); 

する必要があります。私はその... のようにこれを行うと

しかし、idはあなたが唯一の活動の内容を変更する必要があると言う代わりに、何度も何度も

+0

しかし、どのようにしてアクティビティのコンテンツだけを変更できますか? – krackmoe

+1

ページに表示される実際のコンテンツによって異なります。少なくとも1つの 'View'要素が必要です。 'onTouch'でコード/コンテンツを変更することができます – NikkyD

1

これはあなたの要求を処理するために、厄介な(そしておそらく不可能)な方法です。

Fragmentsを使用して機能とナビゲーションを分割することを検討してください。

1

これは、popperアクティビティ起動モードとアクティビティのonNewIntentメソッドのロジックを使用することで実現できると思います。

Activity Launch Modes 1

Activity Launch Modes 2

私はあなたの活動のための単一のタスクの起動モードを使用してお勧めします。

私はあなただけで今までそれを発射することなく、意図を作成している

+0

アクティビティを作成するなどを表示私はのonCreateメソッドで同じコードを持っていますかnewIntentメソッドのように! 私は少し厄介なようです..しかし、私はここでそれをより良くする方法はわかりません... – krackmoe

+0

シングルトップは私のニーズに合っているのですか? – krackmoe

+0

onNewIntentにコードを記述し、onCreateのgetIntentメソッドを使用してonNewIntentを呼び出すことができます。 –