Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/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 - Fatal编程技术网

Android 标题栏上的后退按钮不适用于棒棒糖制作前的设备

Android 标题栏上的后退按钮不适用于棒棒糖制作前的设备,android,Android,我在标题栏上添加了一个后退按钮,用于我的应用程序中的一些活动。后退按钮对于棒棒糖设备很有效,但当我在冰淇淋三明治设备上测试我的应用程序时,后退按钮不起作用。以下是我的代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_article); getSupportActionBar

我在标题栏上添加了一个后退按钮,用于我的应用程序中的一些活动。后退按钮对于棒棒糖设备很有效,但当我在冰淇淋三明治设备上测试我的应用程序时,后退按钮不起作用。以下是我的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_article);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);   //Adding back button
    List<ItemObjectArticle> rowListItem = getAllArticleItemList();
    lLayout = new LinearLayoutManager(ArticleActivity.this);
    RecyclerView rView = (RecyclerView)findViewById(R.id.recycler_view1);
    rView.setLayoutManager(lLayout);
    ArticleAdapter rcAdapter = new ArticleAdapter(ArticleActivity.this, rowListItem);
    rView.setAdapter(rcAdapter);
}

public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
//noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }else if(id==R.id.home){
        NavUtils.navigateUpFromSameTask(this);  //handling click
        return true;
    }

    return super.onOptionsItemSelected(item);
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_-article);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);//添加后退按钮
List rowListItem=getAllArticleItemList();
lLayout=新的LinearLayoutManager(ArticleActivity.this);
RecyclerView rView=(RecyclerView)findViewById(R.id.recycler\u视图1);
rView.setLayoutManager(lLayout);
ArticleAdapter rAdapter=新的ArticleAdapter(ArticleActivity.this,rowListItem);
rView.setAdapter(rcAdapter);
}
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
//noinspection SimplifiableIf语句
if(id==R.id.action\u设置){
返回true;
}else if(id==R.id.home){
NavUtils.navigateUpFromSameTask(this);//单击
返回true;
}
返回super.onOptionsItemSelected(项目);
}
在Android清单文件中,我添加了:

<activity
        android:name=".ArticleView"
        android:label="@string/title_activity_article_view"
        android:parentActivityName="com.example.android.kheti.ArticleActivity">   //this
    <intent-filter>
        <action android:name="com.example.android.kheti.ARTICLEVIEW" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    </activity>
//这个
我需要更改哪些代码才能在所有Android设备上运行?

来自文档

从Android 4.1(API级别16)开始,您可以声明逻辑 通过指定android:parentActivityName来设置每个活动的父级 元素中的属性

如果您的应用程序支持Android 4.0及更低版本,请包括支持 使用应用程序库,并在 . 然后将父活动指定为的值 android.support.PARENT_活动,与 android:parentActivityName属性

因此,您需要添加元数据,以使其在所有设备中工作。 添加支持库并尝试以下操作:

<activity
        android:name=".ArticleView"
        android:label="@string/title_activity_article_view"
        android:parentActivityName="com.example.android.kheti.ArticleActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.android.kheti.ArticleActivity" />
 </activity>


只是一个猜测:在方法
onOptionsItemSelected()
中,尝试使用
android.R.id.home
@qbix,谢谢,但它通过在
AndroidManifest.xml
文件中添加元数据元素在这两种情况下都有效。在我的例子中,使用
android.R.id.home
R.id.home
是等效的。