我不确定为什么会这样,但是我有我的Main活动,然后使用Intent来调用子活动。在这个活动上我有一个向上按钮,但它只是出于某种原因退出应用程序。我已经盯着这一段时间,也许它只需要一双新鲜的眼睛。
如果有人能解释为什么会这样,我将不胜感激
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CardView cardView = (CardView) findViewById(R.id.card_view);
cardView.setOnClickListener(new CardView.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Orange.class);
startActivity(intent);
finish();
}
});
}
}
Orange.java
public class Orange extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.orange);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
}
在我的AndroidMainfest.xml中,我有
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 0 :(得分:3)
在MainActivity on按钮上单击,执行以下操作:
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Orange.class);
startActivity(intent);
finish();
}
您启动Orange活动并完成MainActivity。当您从Orange退出时,无处可返回,因此应用程序已关闭
答案 1 :(得分:1)
我不确定但可能是因为结束(); 因为完成后会在进入另一个活动后销毁活动,所以您无法返回上一个活动。尝试删除finish();希望这会有所帮助:)
答案 2 :(得分:0)
尝试添加此内容...
MainActivity.this.startActivity(intent);
答案 3 :(得分:0)
您是否在清单中声明橙色活动?
请求显示您的整个Android清单文件。
你应该有类似的东西:
<activity android:name=".Orange"
android:label="@string/app_name" >
</activity>
除了:
<activity
android:name=".MainActivity"
...
否则当您尝试启动橙色活动时它会崩溃。
编辑: 在重新阅读这篇文章后,我认为@Alexander Zhak对他的回答是正确的,该行(finish();)正在关闭第一个活动,所以没有任何东西可以返回,所以它关闭了应用程序。