2012-11-15 56 views
1

這是我第一個android應用程序,我已經做了3年的iPhone開發,這是一種思維方式的轉變,我仍然發現一些奇怪的東西。首先,我不知道這是否iPhone背景可能會造成一些麻煩,但這裏是我想要做的事:Double ActionBar出現?

我想要實現的動作條有兩個選項的工作就像從iOS版的TabBar:

ActionBar

我想要的是,當用戶選擇一個動作時,一些活動將呈現給用戶。

下面是我在做什麼,到目前爲止(這是不是太多):

  • 我使用ActionBarSherlock,我有3個活動:對myApp第一和第二

MYAPP僅名爲.java創建動作條元素並加載activity_first

package com.example.myApp; 

import com.actionbarsherlock.ActionBarSherlock; 
import com.actionbarsherlock.view.MenuItem; 

import android.os.Bundle; 

import com.actionbarsherlock.ActionBarSherlock.OnCreateOptionsMenuListener; 
import com.actionbarsherlock.app.SherlockActivity; 
import com.actionbarsherlock.view.Menu; 

public class myApp extends SherlockActivity implements OnCreateOptionsMenuListener { 
    ActionBarSherlock mSherlock = ActionBarSherlock.wrap(this); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setTitle("myApp"); 
     mSherlock.setContentView(R.layout.activity_first); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     menu.add("First") 
      .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 

     menu.add("Second") 
      .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 

     return true; 
    } 
} 

的活動有什麼到目前爲止,除了生成的存根:

import android.app.Activity; 
import android.os.Bundle; 

public class First extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_first); 


    } 
} 

所以,我有1題和1個問題:

  1. 問題:這是正確的使用ActivityBar的?我的意思是,它是否應該用於切換活動?
  2. 問題:正如你可以對myApp類的onCreate方法看,我加載activity_first,它只加載的活動,但它加載的ActionBar兩次,像這樣:

enter image description here

我不明白它爲什麼被加載兩次。如果我刪除線:mSherlock.setContentView(R.layout.activity_first);它加載一次吧,顯然我需要加載活動...

此外,我已將NoActionBar主題分配給XML(activity_first.xml)的圖形編輯器中的activity_first, ,但它不起作用。我能做些什麼來加載一次。

謝謝你寶貴時間

回答

3

這是一個ActivityBar的正確使用嗎?我的意思是,它是否應該用於切換活動?

您可以將「First」和「Second」視爲與桌面應用程序中的工具欄按鈕等效。如果您願意,歡迎您將這些操作欄項目啓動。

正如你可以對myApp類的onCreate方法看,我加載activity_first,它只加載的活動,但它加載的ActionBar兩次,像這樣:

刪除這條線:

ActionBarSherlock mSherlock = ActionBarSherlock.wrap(this); 

,改變mSherlock.setContentView(R.layout.activity_first);只是setContentView(R.layout.activity_first);。我相信這會解決你的問題。

+0

謝謝,它的工作! – Emanuel

相關問題