2013-07-25 120 views
2

我有两个布局xml文件,每个文件都有自己单独的Activity类。每个类都是有效的,因为我可以从清单文件的应用程序部分引用每个活动,并启动并运行。我的问题是,当我点击第一个布局xml文件上的按钮转到另一个时 - 它将切换到第二个布局xml文件,但是该布局上的任何操作都不会执行任何操作。第二个活动类中的代码不会触发。例如,当我首先列出MenuActivity时,它将显示布局xml文件,并且该布局上的所有调用都起作用。当我点击按钮切换到Home时,它会显示home layout xml文件,但HomeActivity中的所有代码都不会执行任何操作。我确定这很简单,但我无法忍受它。提前致谢。从一个活动切换到另一个活动

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MenuActivity" 
     android:label="@string/title_activity_menu" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".HomeActivity" /> 
</application> 
+1

你可以显示你目前使用哪些代码切换活动? –

+1

你能向我们展示一些来自'MenuActivity'和'HomeActivity'的相关部分吗? – gunar

+1

您应该发布切换的代码,而不仅仅是XML – anthonycr

回答

12

这听起来像你正在使用的不是setContentView()Intents交换机的活动。

例如,启动您MenuActivityHomeActivity

Intent menuIntent = new Intent(this, MenuActivity.class); 
startActivity(menuIntent); 

setContentView()只是改变的显示布局;它不会创建一个新的活动。

+0

啊,谢谢。就是这样。但是,当我添加代码时,出现此错误:构造函数Intent(new View.OnClickListener(){},Class )未定义。 TextView menuButton =(TextView)findViewById(R.id.textViewMenu); menuButton.setOnClickListener(new View.OnClickListener(){@Override public void onClick(View v){Intent menuIntent = new Intent(this,MenuActivity.class); startActivity(menuIntent);}});对不起,我不知道如何正确格式化。 –

+1

new Intent(this,MenuActivity.class);需要一个上下文'this'和一个'MenuActivity.class'类。似乎你没有给它一个适当的上下文。尝试getApplicationContext() – Shmuel

+0

@Tanis:真是一个猜测! – gunar

0

使用Intent类从一个活动切换到另一个活动。 假设你的第一个活动是HomeActivity,你想去MenuActivity只写一个简单的两行代码..

Intent intent=new Intent(HomeActivity.this,MenuActivity.class); 

startActivity(intent); 

我希望这个作品。

相关问题