2010-09-05 54 views
0

我是新來的Android編程,我試圖找出如何使用startActivity打開另一個屏幕後返回到前一個屏幕/活動。從我所做的所有研究中,使用finish()方法應該在當前屏幕之前顯示前一個屏幕;然而,在我的測試程序中(有四個屏幕有「下一個」&「後退」按鈕),當按下後退按鈕時,它會一直跳回到第一個屏幕,而不是轉到上一個屏幕。回到以前的屏幕

任何幫助,這將不勝感激。我的代碼如下:

public class Screen1 extends Activity implements OnClickListener { 


    private Button next; 
    private Button quit; 



    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.screen1); 

    next = (Button) findViewById(R.id.next); 
     quit = (Button) findViewById(R.id.quit); 

     next.setOnClickListener(this); 
     quit.setOnClickListener(this); 
    } 


    public void onClick(View view) { 

     switch(view.getId()) { 

     case R.id.next: { 
      startActivity(new Intent(this, Screen2.class)); 
     } 
     case R.id.quit: { 

      finish(); 
     } 

     } 

    } 

} 




public class Screen2 extends Activity implements OnClickListener { 


    private Button next; 
    private Button back; 



    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.screen2); 

    next = (Button) findViewById(R.id.next); 
     back = (Button) findViewById(R.id.back); 

     next.setOnClickListener(this); 
     back.setOnClickListener(this); 
    } 


    public void onClick(View view) { 

     switch(view.getId()) { 

     case R.id.next: { 
      startActivity(new Intent(this, Screen3.class)); 
     } 
     case R.id.back: { 

      finish(); 
     } 

     } 

    } 

} 





public class Screen3 extends Activity implements OnClickListener { 


    private Button next; 
    private Button back; 



    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.screen3); 

    next = (Button) findViewById(R.id.next); 
     back = (Button) findViewById(R.id.back); 

     next.setOnClickListener(this); 
     back.setOnClickListener(this); 
    } 


    public void onClick(View view) { 

     switch(view.getId()) { 

     case R.id.next: { 
      startActivity(new Intent(this, Screen4.class)); 
     } 
     case R.id.back: { 

      finish(); 
     } 

     } 

    } 

} 




public class Screen4 extends Activity implements OnClickListener { 



    private Button back; 



    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.screen4); 

     back = (Button) findViewById(R.id.back); 

     back.setOnClickListener(this); 
    } 


    public void onClick(View view) { 

      finish(); 
     } 


    } 

} 
+0

'返回' 按鈕,在Android設備上默認情況下做這種行爲的爲您服務。是否有任何理由需要在應用程序中使用明確的後退按鈕?有可能你不需要它。 – smith324 2010-09-05 20:49:44

+0

不,我真的不需要它,只是覺得除了設備上的後退按鈕之外,還有它會很好。但是,設備上的後退按鈕也會發生同樣的情況。活動是否有可能被保存在堆棧中?我正在使用Eclipse Helios v。3.6。 – steevo 2010-09-06 00:58:21

回答