Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-从活动向后导航到上一个活动(无向后箭头)_Android_Android Intent_Toolbar - Fatal编程技术网

Android-从活动向后导航到上一个活动(无向后箭头)

Android-从活动向后导航到上一个活动(无向后箭头),android,android-intent,toolbar,Android,Android Intent,Toolbar,我有两个活动:HomeActivity和EmailChangeActivity以及HomeActivity中的一些片段。我要做的是在EmailChangeActivity工具栏中设置返回导航箭头。我有更多的活动,不知何故我成功地制作了那个箭头(但我直接从活动中制作了意图,而不是从活动中的片段)。为了得到那支箭,我所做的是: 当我从HomeActivity转到EmailChangeActivity时,我在HomeActivity片段中调用此项: Intent intent = new In

我有两个活动:
HomeActivity
EmailChangeActivity
以及
HomeActivity
中的一些片段。我要做的是在
EmailChangeActivity
工具栏中设置
返回导航箭头。我有更多的活动,不知何故我成功地制作了那个箭头(但我直接从活动中制作了
意图,而不是从活动中的片段)。为了得到那支箭,我所做的是:

当我从
HomeActivity
转到
EmailChangeActivity
时,我在
HomeActivity
片段中调用此项:

    Intent intent = new Intent(getActivity().getApplicationContext(),
            ChangeEmailActivity.class);
    getActivity().startActivityForResult(intent, 1);
EmailChangeActivity
I中插入标准代码创建
工具栏
并设置它:

// Setting Toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(getString(R.string.change_email_activity_name));
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
Manifext.xml
中,我制作了:

 <!-- Home Activity -->
    <activity
        android:name="com.example.nazwamarki.myapplication.HomeActivity"
        android:label="@string/home_activity_name"
        android:theme="@style/AppTheme.Normal">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>

<!-- Change Email Activity -->
<activity
    android:name="com.example.nazwamarki.myapplication.ChangeEmailActivity"
    android:label="@string/register_activity_name"
    android:theme="@style/AppTheme.Normal"
    android:parentActivityName=".HomeActivity">

    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.nazwamarki.myapplication.HomeActivity" />

</activity>

如果您没有使用
操作活动

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.home) {
        NavUtils.navigateUpFromSameTask(this);

        return true;
    }

    return super.onOptionsItemSelected(item);
}
mToolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_action_back));
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // The intent to go back to HomeActivity
    }
});
如果您使用的是
ActionBarActivity
,那么您所需要做的就是让Android将工具栏用作ActionBar

setSupportActionBar(mToolbar);

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

看起来您缺少此部分:

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

您可以在此处获得更多详细信息

,但如果我启动活动时不使用
startActivity()
,而是使用
startActivityForResult()
?是否正在改变某事?