我正在使用Android Studio制作一个以活动A开头,然后按下按钮进入活动B的应用程序,其中包含一些扩展到其自身活动中的其他按钮。
我想使用“后退”按钮返回上一个活动-我阅读的内容是android devs文档页面中的默认操作...但是,当我处于活动B或其他活动之一时,我的应用只会退出当我按下后盖时将其扩展。
我认为我的问题是我没有将自己的活动推送到堆栈中,所以这就是为什么它退出了吗?因为堆栈中没有东西?
我已经读过很多相同的问题,但是我仍然理解。
因此,如果我有两个Java类Activity A和Activity B以及一个Main。
主体将使用意图启动活动A。然后通过A中的按钮打开活动B。现在,我想在设备上按回去,然后返回到A。如果在A中按回去,则退出。
我发现我应该使用哪个?
@Override
public void onBackPressed() {
// do something on back.
return;
}
我对活动A和活动B的调用方式有所不同。
A是计时器,B是aboutme_help。
计时器:
public void openAboutme(View view) {
setContentView(R.layout.activity_aboutme_help);
}
aboutme_help:
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class aboutme_help extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_aboutme_help);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_aboutme_help, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
也许有人可以指向我的示例应用程序包含此简单功能。
public void openAboutme(View view) { setContentView(R.layout.activity_aboutme_help); }
这是用新的布局替换了当前活动的内容。如果您在活动A中调用此功能,则永远不会离开活动A,因此如果是第一个活动,则返回按钮自然会关闭该应用程序。
这是您在Android中启动活动的方式:
Intent i = new Intent(this, ActivityB.class);
startActivity(i);
不要忘记在清单中定义您的活动。
注1:
请遵循Java命名约定。在Java中,类名以帕斯卡大小写(FirstLetterOfWordIsCapital)。AboutActivity
通过查看类名称,可以肯定它是一个更好的名称。
笔记2:
您的教程应该首先提到如何开始另一个活动。使用指向您的教程的链接更新您的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句