Dan*_*lor 10 java android back preferenceactivity android-activity
我有一个有两个活动的应用程序:MainActivity和SettingsActivity.MainActivity有一个菜单,其中包含一个"设置"菜单项.单击此菜单项时,它会以意图启动SettingsActivity.活动开始后,我点击左上角的后退按钮,没有任何反应.我假设自从使用intent启动活动后,活动堆栈将自动管理.我想回到MainActivity.这个假设我错了吗?
MainActivity.onMenuItemSelected
public boolean onMenuItemSelected(int featureId, MenuItem item) {
int itemID = item.getItemId();
if(itemID == R.id.settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
SettingsActivity
public class SettingsActivity extends PreferenceActivity {
public static final String TEST = "test";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
Run Code Online (Sandbox Code Playgroud)
Sho*_*uri 37
在SettingsActivity你需要覆盖的内部,onOptionsItemSelected以启用Action Bar左上角的后退按钮返回.它本身并不知道点击它需要做什么.在android.R.id.home你的情况下你可以打电话finish().这将完成您当前的活动,您将返回到MainActivity哪个开始.例如:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
this.finish();
return true;
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
只是为了保持完整性,以使家庭按钮,您可以添加在你的下面onCreate()的SettingsActivity:
getActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
根据setDisplayHomeAsUpEnabled()的文档
It is to show the user that selecting home will return one level up rather than to the top level of the app.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
14185 次 |
| 最近记录: |