带后退按钮的Android新意图
在我的Android应用程序中,我使用一个按钮的空活动。如果我按下按钮,我会有目的地调用一个新活动。但是在新活动中,跳回最后一页的后退按钮(左上)丢失。安卓工作室是否已经有了一个活动模板或一个专门的意图调用来实现这一点?或者最好的方法是什么 这是按下按钮时调用的功能带后退按钮的Android新意图,android,android-actionbar,back-button,Android,Android Actionbar,Back Button,在我的Android应用程序中,我使用一个按钮的空活动。如果我按下按钮,我会有目的地调用一个新活动。但是在新活动中,跳回最后一页的后退按钮(左上)丢失。安卓工作室是否已经有了一个活动模板或一个专门的意图调用来实现这一点?或者最好的方法是什么 这是按下按钮时调用的功能 void scanClicked(View v){ Intent intent = new Intent(this, ServiceActivity.class); startActivity(intent); }
void scanClicked(View v){
Intent intent = new Intent(this, ServiceActivity.class);
startActivity(intent);
}
ServiceActivity只是一个空活动
<activity
android:name=".LoginActivity"
android:label="@string/title_activity_login"
android:theme="@style/SplashTheme"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".NavigationActivity"
android:label="@string/title_activity_navigation"
android:theme="@style/AppTheme.NoActionBar" />
<activity android:name=".ServiceActivity"
android:label="@string/annualServiceTitle">
</activity>
有两个选项可供选择 您可以在XML中使用android工具栏 或者,您可以添加一个布局,该布局具有与布局左侧对齐的ImageButton。那你就可以这么做了
ImageButton backBtn;
backBtn = (ImageButton) findViewById(R.id.backBtn);
backBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
}
});
希望这能有所帮助。您需要在
服务活动中使用setDisplayHomeAsUpEnabled
。java
如下:
public class ServiceActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// etc...
getActionBar().setDisplayHomeAsUpEnabled(true);
}
...
}
试试这个
在要移动到ServiceActivity调用意图的活动上
Intent intent = new Intent(this, ServiceActivity.class);
startActivity(intent);
并在ServiceActivity上处理click事件和调用
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
supportFinishAfterTransition();
// or call
finish();
}
});
在第二个活动中..使您的活动扩展AppCompactActivity 在onCreate中添加
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
并将“活动”中选择的OnOptions项覆盖为
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == android.R.id.home)
{
finish();
}
return super.onOptionsItemSelected(item);
}
我用两行代码解决了这个问题: 在创建第二个视图时:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
android:parentActivityName="fronius.com.serviceapp_frontend.NavigationActivity"
并在清单中向第二个视图添加属性“parentActivityName”:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
android:parentActivityName="fronius.com.serviceapp_frontend.NavigationActivity"
这基于在
style.xml
文件中定义的应用程序主题如果您正在使用您所说的DarkActionBar主题,您只需在清单文件中添加android:parentActivityName=“fronius.com.serviceapp_frontend.NavigationActivity”
但如果您使用
NoActionBar
主题在活动中使用工具栏(如材料设计中所述),除了指定parentActivityName
:getSupportActionBar()。setDisplayHomeAsUpEnabled(true)外,还必须将这行代码添加到活动中的可见向上导航按钮中代码>
您还可以通过以下代码行更改向上导航按钮图标:
getSupportActionBar().setHomeAsUpIndicator(R.mipmap.ic\u back)代码>显示您的代码。很抱歉,我编辑了代码。您可以使用supportFinishAfterTransition()或在新添加的活动的单击事件中调用finish(),还可以确保在调用新活动之前未调用finish()或添加属性noHistory。添加了清单。