我已在我的AboutApplication
活动中添加了工具栏。我还在此工具栏中添加了一个导航按钮 -
单击此按钮时,应用程序应导航到上一个活动(LoginActivity
)。
我尝试在方法onBackPressed()
内调用完成,但这不起作用。我尝试为工具栏OnClickEventListener()
创建setNavigationOnClickListener()
- 这也不起作用。
以下是我的AboutApplication活动的代码:
public class AboutApplicationActivity extends AppCompatActivity {
private NavigationOnClickListener myListener;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about_application);
myListener = new NavigationOnClickListener(this);
myListener.setNextActivity(new LoginActivity());
TextView toolbarTitle = (TextView) findViewById(R.id.aboutApplication);
Toolbar toolbar = (Toolbar) findViewById(R.id.aboutApplicationToolbar);
toolbar.setNavigationIcon(R.drawable.back);
toolbar.setNavigationOnClickListener(myListener);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
答案 0 :(得分:1)
不要将您想要的东西与导航设计混淆,您的要求与Android提供的Up navigation
很匹配,为什么要在已经提供此功能时使用它。
如果您的AboutApplication
活动来自LoginActivity
,那么您应该应用向上导航,前提是我知道最好的Android
,让它处理它。
在提供导航时需要注意的事项是在android项目的AndroidManifest.xml
文件中正确定义子父结构
<!-- Assuming this activity would be a parent -->
<activity
android:name="com.example.myfirstapp.LoginActivity" ...>
...
</activity>
<!-- this would be your child activity in your case `AboutApplicationActivity` -->
<activity
android:name=".AboutApplicationActivity"
>
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.LoginActivity" />
</activity>
现在,在您的孩子活动中,您需要确保这一点,
getActionBar().setDisplayHomeAsUpEnabled(true); // without support library
getSupportActionBar().setDisplayHomeAsUpEnabled(true); // support library
和offcours到现在为止你知道这是怎么回事
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
如果您很难导入NavUtils.java
,请写下其完全限定名称android.support.v4.app.NavUtils
有关详细信息,请使用android文档here,