繁体   English   中英

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

[英]android - up indicator not working properly

我已经建立了这个工具来测试我的应用程序在低端设备(具有少量资源,旧版本的android等)上的工作方式,这种情况下,指示符仅在我的2.3.5 api 10中不起作用。不要带我回到家长活动。 但是,进行Toast可以查看发生了什么,这次仅在该设备上完美显示了Toast,但仍未导航到父活动(主要活动)

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

父级设置在Mainefest中:

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

同样,在模拟器和我测试过的其他其他设备(如Nexus 5(API 19))上,这也可以正常工作,并且不仅工作:

在此处输入图片说明

吐司被创建:

在此处输入图片说明

知道为什么上升指示器不能将我带回到主要活动吗?

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

还返回true以使用该事件。

Documentaiton

void navigateUpFromSameTask (Activity sourceActivity) :便捷方法,等效于调用navigationUpTo(sourceActivity,getParentActivityIntent(sourceActivity))。 sourceActivity将通过此调用完成。

  @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,您还可以使用<meta-data>元素声明父活动,该元素为"android.support.PARENT_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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM