我正在使用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是Timer,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);
}
}
也许一个示例应用程序可以指向我包含这个简单的功能。
答案 0 :(得分:1)
您可以简单地设置清单文件,以便活动A是活动B的父级。因此,它会知道在按下时返回。因此,在活动B的活动部分下的清单文件中:
android:parentActivityName="com.package.ActivityA"
ActivityA是您的java类的名称,而不是XML文件名,com.package是您的包的名称
答案 1 :(得分:0)
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类名称是pascal case(FirstLetterOfWordIsCapital)。 AboutActivity
肯定是一个更好的名字,因为通过查看类名可以看到它是一个活动。
注2:
您的教程应该首先提到如何启动另一项活动。通过教程链接更新您的问题。