2015-06-25 62 views
3

我在標題欄上爲我的某些應用在我的應用中添加了一個後退按鈕。後退按鈕適用於棒棒糖設備,但是當我在Icecream Sandwich設備上測試應用時,後退按鈕不work.Here是我的代碼:標題欄上的後退按鈕不適用於前棒棒糖設備

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

而在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合作設備?在元件parentActivityName 屬性:

+0

只是一個猜測:在方法'onOptionsItemSelected()',請嘗試使用'android.R.id.home'。 –

+0

@qbix,謝謝,但它通過在'AndroidManifest.xml'文件中添加元數據元素在兩種情況下都起作用。在我的情況下,使用'android.R.id.home'和'R.id.home'是等價的。 –

回答

1

從文檔

Android中4.1(API級16)開始,可以通過指定機器人聲明邏輯 父每個活動的。

如果您的應用支持Android 4.0及更低版本,請將支持 庫與您的應用包括在一起,並在 中添加一個元素。然後指定父活動作爲android.support.PARENT_ACTIVITY的 的值,匹配 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> 
相關問題