Action back(Navigation Up)上的操作栏到自定义活动?

时间:2016-01-19 05:37:55

标签: android menu

我的申请中有很多活动

因为我有这个

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
    actionBar.setDisplayHomeAsUpEnabled(true);
}

从其他活动返回主页

如下

enter image description here

如果我按下这三个按钮,所有菜单都正常工作 这是我的选项菜单

@覆盖 public boolean onOptionsItemSelected(MenuItem item){

int id = item.getItemId();

if (id == R.id.abc) {
    Intent mypIntent = new Intent(this, abc.class);
    startActivity(mypIntent);
    return true;
    }

else if (id == R.id.web) {
    Intent webIntent = new Intent(this, Web.class);
    startActivity(webIntent);
    return true;
}
else if (id == R.id.about) {
    Intent aboutIntent = new Intent(this, About.class);
    startActivity(aboutIntent);
    return true;
}
.
.
.
..

return super.onOptionsItemSelected(item);
}

此处没有名为id == R.id.loginid == R.id.home的菜单,但它将在几天前登录其家庭活动

但如果我按Back ..操作后退将重定向到主页

的登录页面

我已经使用共享首选项为我的应用程序添加了一个登录页面..现在它是启动器活动..

此处在我的登录活动中,如果用户登录后,应该每次都应该重定向到Home活动。 和它的工作正常..

但是在按下箭头按钮的操作栏上,它会重定向到空登录页面。 如果我按下取消整个应用程序正在运行..我的凭据是安全的,除了此操作栏..

更新

我已经给出了Intent,如果登录凭据成功重定向到应用启动时的Home活动,它将每次检查

除了行动之外,每件事情都是好的

如何解决这个问题......

2 个答案:

答案 0 :(得分:1)

好的,请确保您按以下方式声明活动 -

<activity
    android:name="com.example.myfirstapp.DisplayMessageActivity"
    android:parentActivityName="com.example.myfirstapp.MainActivity" >
    <!-- The meta-data element is needed for versions lower than 4.1 -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.myfirstapp.MainActivity" />
</activity>

现在在每个活动中添加以下代码块 -

@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);
}

<强>更新 添加新的类文件以检查登录或不使用home作为默认值..并将launcher中的新类替换为Manifest

答案 1 :(得分:0)

只需覆盖此方法。

randmat(10,10).foo();