2013-11-20 110 views
0

我必須創建自定義標題欄來設置動態文本。這將會像設置標題一樣,並在下面,在操作欄上的動態字幕。在自定義標題欄上設置標題文本

在這種情況下,應用程序標題在左側,與默認值一樣。動態文本在右側,並且必須動態改變。

這是佈局custom_titlebar.xml

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="40dp" 
    android:orientation="vertical" > 

<TextView 
    android:id="@+id/title_left_text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="left" /> 

<TextView 
    android:id="@+id/title_right_text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="right" 
    android:layout_alignParentRight="true" />  
</RelativeLayout> 

清單我定義:

<application 
    android:theme="@style/Theme.NoTitle" > 

而且在活動

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
     //HAVE COMENTED THIS, BECAUSE IT THROWS: You cannot combine custom titles with other title feature.. 

    setContentView(R.layout.main); 

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_titlebar); 

    TextView title = (TextView) findViewById(R.id.title_left_text); 
    title.setText(getTitle()); 

動態更改文本,我也對活動

public void setTitleStatus(String right) { 
    if (right.length() > 20) { 
     right = right.substring(0, 20); 
    } 
    TextView status = (TextView) findViewById(R.id.title_right_text); 

    status.setText(right); 
} 

的問題是,拋出一個NPE上的onCreate的線,我設置標題(title.setText(getTitle());

回答

1

變化

title.setText(getTitle().toString()); 
+0

繼續顯示相同的錯誤 – masmic

+0

如果這是您自己的getTitle()方法? – Piyush

+0

我沒有getTitle()方法。我認爲這是一種預定義的方法。在那裏設置應用標題的方式是什麼? – masmic

0

看在Android示例中。在藍牙項目由自定義操作欄,在不同的場合

+0

是的,這就是我現在的方式改變它的狀態。但我需要它沒有ActionBar – masmic

+0

爲什麼你需要沒有ActionBar?如果你有一個很好的例子,你的想法是在活動頂部顯示一個標題,爲什麼不使用這種方法? – Hitman