2014-09-02 122 views
0

我有一個登錄屏幕有兩個選項在我的應用程序 - 「登錄」和「創建帳戶」。我想實現如下的東西,例如,登錄屏幕上:操作欄 - 自定義圖像和文本靠近向上按鈕

enter image description here

我有一個活動,另外,通過點擊「UP」按鈕,我要回回來。我有以下構造函數的期望活動:

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_bl__login_form_view_controller); 
    getActionBar().setDisplayHomeAsUpEnabled(true); 

    //----------------------added source - no effect----------------------- 

    getActionBar().setDisplayShowHomeEnabled(true); 
    getActionBar().setIcon(R.drawable.circle) ; 
    getActionBar().setTitle("A title"); 


    //--------------------------------------------------------------------- 
    setTitle ("Вход") ; 
} 

而且我有UP按鈕。我如何添加圈子圖像和一些文本?所有教程都說,我可以在AppManifest中設置應用程序圖標,但它會改變主屏幕上的應用程序圖標。我如何添加文本到後退按鈕?我不想爲整個應用程序實現任何導航邏輯或設置父活動,因爲它是一個登錄屏幕,只有在授權後纔會顯示帶有導航邏輯的主菜單。提前致謝!

回答

5

setTitle將設置標題和setIcon將設置圖標ActionBar

getActionBar().setTitle("Your Title"); 
getActionBar().setDisplayShowHomeEnabled(true); 
getActionBar().setHomeButtonEnabled(true); 
getActionBar().setDisplayHomeAsUpEnabled(true); 
getActionBar().setIcon(R.drawable.youricon); 

參考:Adding Up Actionhttp://developer.android.com/guide/topics/ui/actionbar.html

+0

只顯示左上角的「<」,但沒有圖標或文字( – 2014-09-02 08:38:04

+1

),在程序onCreateOptionsMenu(菜單菜單)中,我已將所有這些參數設置爲「false」。Thnx – 2014-09-02 09:23:00

1

什麼:

getActionBar().setIcon(R.drawable.circle); 
0

使用getActionBar().setIcon(R.drawable.youricon)設置的圖標和getActionBar().setTitle("A title");設置圖標旁邊的文本。

+0

我已經這樣做了,但沒有任何效果。我應該編輯xml樣式的動作欄嗎? – 2014-09-02 08:12:37

+0

你可以用xml樣式來做,但它應該以我(和其他人)寫的方式工作。什麼不工作? – Gumbo 2014-09-02 08:25:02

+0

只出現左上角的「<」,但沒有圖標或文字 – 2014-09-02 08:37:07

0

對於圖標:

getActionBar().setIcon(R.drawable.youricon); 

對於標題:

getActionBar().setTitle("A title"); 
+0

我已經這樣做了,但沒有任何效果。查看編輯的問題。我應該編輯xml樣式的動作欄嗎? – 2014-09-02 08:14:59

0

您可以使用自己的佈局

actionBar.setDisplayShowHomeEnabled(false); 
actionBar.setHomeButtonEnabled(false); 
actionBar.setDisplayShowTitleEnabled(false); 
actionBar.setDisplayShowCustomEnabled(true); 

final ViewGroup actionBarLayout = (ViewGroup)getLayoutInflater().inflate(R.layout.yourXML, null); 
actionBarLayout.findViewById(R.id.buttonId).setOnClickListener(this); 

actionBar.setCustomView(actionBarLayout); 

它的工作對我來說使用自定義操作欄。所以我希望它爲你工作。

+0

只有左邊的「<」箭頭但是沒有圖標或文字 – 2014-09-02 08:38:32

+0

您是否爲此創建了佈局? – 2014-09-02 08:39:58

+0

嗯,我在菜單文件夾中爲此欄自動生成了xml文件,但好像我只能調整右邊 - 中的組按鈕標籤在裏面,是不是? – 2014-09-02 08:42:11

0

接受的答案很好地解決了問題。我只是添加一些使用自定義操作欄佈局的附加信息。

getActionBar().setTitle("Your Title"); 
getActionBar().setDisplayShowHomeEnabled(true); 
getActionBar().setHomeButtonEnabled(true); 
getActionBar().setDisplayHomeAsUpEnabled(true); 
getActionBar().setIcon(R.drawable.youricon); 
// You can use setLogo instead like 
// getActionBar().setIcon(R.drawable.youricon); 

// In case of support action bar, if its not showing properly, you need to add display options 
//getActionBar().setDisplayOptions(actionBar.getDisplayOptions() | ActionBar.DISPLAY_SHOW_CUSTOM); 

現在這裏是描述如何在android操作欄中使用自定義佈局的代碼段。

// Make a layout named 'custom_actionbar' and simply add elements you want to show in your actionbar. 
final ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater() 
       .inflate(R.layout.custom_actionbar, null); 
// Now for support action bar, get the action bar 
actionBar = getSupportActionBar(); 

// Set necessary attributes 
actionBar.setDisplayHomeAsUpEnabled(true); 
actionBar.setHomeButtonEnabled(true); 
actionBar.setElevation(0); 

// Set the custom layout in actionbar here 
actionBar.setCustomView(actionBarLayout); 
actionBar.setDisplayOptions(actionBar.getDisplayOptions() 
       | ActionBar.DISPLAY_SHOW_CUSTOM); 

// Now handle the elements of the custom layout here 
Button b1 = (Button) findViewById(R.id.button1); 
// Set actions for Button 1 here 
b1.setText("Button 1"); 

// Another element in custom actionbar 
ImageView iv1 = (ImageView) findViewById(R.id.myImage); 
iv1.setBackgroundResource(R.drawable.myImagePlaceHolder); 

放置在onCrate,並檢查自己的代碼。