2016-07-13 16 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 
     } 
    }); 
} 

希望这将有助于〜