DMC*_*DMC 5 android android-ui android-button
我有一个具有菜单的应用程序,根据您在菜单中按下的按钮,将打开一个新活动.我想在每个屏幕上都有一个后退按钮,可以将您带到上一个屏幕,所以我想知道我该如何解决这个问题?
以下是我使用的一些代码:
backButton = (ImageButton) findViewById(R.id.back_button);
backButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
Run Code Online (Sandbox Code Playgroud)
然而,对于我来说,将此代码放在我的所有活动中并不是一个好的编程习惯.我如何创建某种堆栈来保存所有查看的页面并使用它来返回上一页?
我必须在我的应用程序中放置一个后退按钮,因此我无法使用ActionBar中的现有按钮.
只是一个想法
创建一个扩展Activity的baseClass.在那里宣布
@Override
public void onClick(View v) {
super.onBackPressed(); // or super.finish();
}
Run Code Online (Sandbox Code Playgroud)
在所有活动中扩展此基类.并在按钮的每个布局中放置
android:onClick="onClick"
Run Code Online (Sandbox Code Playgroud)
并使按钮的xml设计可重复使用,在单独的xml中创建它.并使用添加它<include/>
您是否尝试过在活动中使用操作栏?用于每项活动
ActionBar actionBar = getSupportActionBar();
if(actionBar != null){
actionBar.setTitle(getResources().getString(R.string.app_name));
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setIcon(R.drawable.app_icon);
}
Run Code Online (Sandbox Code Playgroud)
和处理
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
我建议不要使用自定义后退按钮.Android有一个硬件后退按钮.按下haradware后退按钮将导航到上一个.
我认为您不需要自定义后退按钮.我不认为它是一个很好的编程实践来覆盖默认行为.
您可以在活动中创建一个后退按钮,并按上述方式实现功能.用户仍然可以使用硬件后退按钮来实现相同的功能.因此,您将提供相同的冗余功能.
| 归档时间: |
|
| 查看次数: |
21807 次 |
| 最近记录: |