android - 向上指示器无法正常工作

android - up indicator not working properly

我构建这个是为了测试我的应用程序在低端设备上的工作方式(资源量小,android 的旧版本等),这种情况下指示器仅在我的 2.3 中不起作用。 5 api 10. 不工作意味着它不会带我回到 parent activity。然而,Toast 是为了查看发生了什么,这次只有 toast 在该设备上完美显示,但仍然没有导航到 parent activity (main activity)

Main2Activity :

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);


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

    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
            case android.R.id.home:
                Toast.makeText(this, "Up Button is clicked!", Toast.LENGTH_SHORT).show();
                break;
        }

        return super.onOptionsItemSelected(item);
    }
}

parent 已在 Mainefest 中设置:

....
    <activity
                android:name=".Main2Activity"
                android:parentActivityName=".MainActivity"></activity>
        </application>
....

同样,这在模拟器和我测试过的其他设备(如 Nexus 5)中没有任何问题(API 19),但不能正常工作:

Toast 已创建:

知道为什么上升指标没有带我回到主线 activity 吗?

在你的 onOptionsItemSelected() 添加 NavUtils.navigateUpFromSameTask(this);

也 return true 消费事件..

来自Documentaiton

void navigateUpFromSameTask (Activity sourceActivity) : Convenience method that is equivalent to calling navigateUpTo(sourceActivity, getParentActivityIntent (sourceActivity)). sourceActivity will be finished by this call.

  @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);
        Toast.makeText(this, "Up Button is clicked!", Toast.LENGTH_SHORT).show();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

此外,为了支持 API 级别 4 - 16,您还可以使用指定 "android.support.PARENT_ACTIVITY" 值的 <meta-data> 元素声明父级 activity。例如:

<activity
    android:name="com.example.app.ChildActivity"
    android:label="@string/title_child_activity"
    android:parentActivityName="com.example.app.MainActivity" >
    <!-- Parent activity meta-data to support API level 4+ -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.app.MainActivity" />
</activity>