2016-07-13 17 views
0

我有如何在另一種方法中設置setContentView?

tools:context="com.example.android.newwine.MainActivity" 

<Button 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:onClick="goToNext"/> 

的activity_main.xml中在我的MainActivity.java文件我有

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

public void gaNaarNext(View view){ 
    setContentView(R.layout.activity_main2); 
} 

我有一個與

tools:context="com.example.android.newwine.MainActivity" 

ňactivity_main2.xml文件當我觸摸按鈕旁邊現在activity_main2.xml將被用作內容查看,所以這是正確的,但是當我做任何事情,然後(如觸摸單選按鈕或做不問題是什麼)在我的activity_main2.xml文件中調用了一個方法,它說:「新酒停止。」無論我做什麼調用方法,應用程序都會崩潰。我嘗試了很多,如果我要粘貼我在這裏嘗試的所有東西,這將是一個漫長而長久的問題:)。

但有人回答?我真的不知道該怎麼做,所以我想;讓我們問一些關於Stackoverflow的問題。謝謝!

+0

你很困惑我。你得到的例外是什麼?我假設它是一個空指針異常。不要使用未實例化的小部件。 – Vucko

+0

你能提供logcat嗎? –

回答

1

您可能更願意使用其他活動或fragments來更改您的用戶界面,因爲使用方法setContentView()多次不會因爲涉及的所有繪圖而被推薦。

由於看起來你不想切換活動片段可能是最容易使用的。

This stackoverflow question地址也很重要。

0

更改內容視圖後,屏幕上的UI元素已更改。您之前設置的所有變量現在指向舊屏幕 - 不再存在。一旦您更改了內容視圖,您必須將這些變量設置爲該佈局文件上的正確元素。此外,你可能想看看像卡洛斯Sifuentes說的片段。

0

當我做任何事情,然後(如觸摸RadioButton或做什麼並不重要)我activity_main2.xml文件什麼叫方法,它說:「New Wine is stopped.」無論我做什麼調用的方法,該app crashes

問題是你已經使用activity_main2.xml但你did'nt得到的activity_main2.xmlRadioButtonreference。在使用setContentView()設置新佈局後,您應該獲得所有視圖reference,然後根據需要使用。

更新您的gaNaarNext()如下方法:

public void gaNaarNext(View view){ 
    setContentView(R.layout.activity_main2); 

    // For example: If your activity_main2 contains radio_button then do this 
    RadioButton radioButton = (RadioButton) findViewById(R.id.radio_button); 

    radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton compoundButton, boolean b) { 
      // Do something 
     } 
    }); 
} 

希望這將有助於〜