Android导航到以前的活动不起作用?

时间:2015-12-28 11:59:07

标签: android

我已在我的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);

}

1 个答案:

答案 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