2012-03-16 123 views
0
public class CheckitoutActivity extends Activity { 

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

    void change() { 
     setContentView(R.layout.someview); 
    } 
} 

它不會在函數更改中將視圖設置爲someview。我究竟做錯了什麼。在android中設置內容視圖

+0

您在'setContentView(r.layout.someview);'中使用小型r;'...也不能多次設置內容的視圖... – 2012-03-16 05:07:14

+0

這是一個打字錯誤。現在改變了它。 – user1092042 2012-03-16 05:11:55

回答

0

R.java文件由android本身生成。它有區分大小寫。如下面的代碼

void change() 
{ 
    setContentView(R.layout.someview); 
} 
+0

你是否在某處調用函數? – Praveenkumar 2012-03-16 05:16:08

+0

是的。我已經調用了函數 – user1092042 2012-03-16 05:19:19

2

你不能動態更改活動的佈局,無論是你必須先刪除從活動各方面的意見,然後添加新的意見,以活動或者只是使用一些鰭控制動態改變的觀點。

+1

+1,用於提及多視圖問題 – aProgrammer 2012-03-16 05:18:08

3
  1. 刪除設置新視圖之前的所有其他視圖。
  2. 嘗試調試程序,我不確定change()是否實際上是(?)被調用。如果它沒有被調用,那麼change()不會被android進程回調識別...你可以在onResume()中編寫你的代碼....學習更多關於Activity類here。當我看到change()不是Activity中的函數...

    public class Activity extends ApplicationContext protected void onCreate(Bundle savedInstanceState);

    protected void onStart(); 
    
    protected void onRestart(); 
    
    protected void onResume(); 
    
    protected void onPause(); 
    
    protected void onStop(); 
    
    protected void onDestroy(); 
    

    }

也使用@Override與功能定義時,要實現基類的方法,這是一個很好的做法...

+1

編輯答案以包含@mayank提到的點。 – aProgrammer 2012-03-16 05:17:37

0

你沒有做任何事情,就是喜歡叫在oncreate()中的兩個contentviews。 使用flipviews

相關問題