2011-02-07 8 views
6

私はPreferenceActivityを使用していますが、どのようにカスタムタイトルバーを設定できますか?テキストだけでなく、背景色、サイズ - レイアウト全体。PreferenceAcivityでカスタムタイトルバーを設定する

protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.login_settings); 
    setContentView(R.layout.login_settings_layout); 
} 

答えて

10

PreferenceActivity extends ListActivityを、そしてあなたがaddPreferencesFromResource()でXMLから好みを膨らませるとき、それは標準ListViewListActivityその用途に原料を置く:素晴らしい

+1

'@ +アンドロイド:id/list'は' @android:id/list'にする必要があります – mwieczorek

1
public class Preferences extends PreferenceActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
    super.onCreate(savedInstanceState); 
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar); 
} 
} 
+0

ver_ui_0.2私はそれを試してみましたが、それは動作しませんでした。それは何も変わらない。 – fhucho

+0

これはPreferenceActivityでは機能しませんが、他のアクティビティではうまくいきます... –

0

は、 "NO_TITLE" のためにうまく働きました。

基本的にはsetContentView()を使用してレイアウトを指定できますが、"@+android:id/list"というIDを持つListViewが必要です。 customtitlebarで

@Override 
public void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
    super.onCreate(savedInstanceState); 
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.customtitlebar); 
    addPreferencesFromResource(R.xml.preferences); 
} 

<ListView 
    android:id="@+android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    /> 
+2

login_settings_layout.xmlを投稿してください。 – fhucho

0

またはこのような:あなたはのようになりますlogin_settings_layout.xmlでListViewコントロールを必要とする

protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.login_settings); 
    setContentView(R.layout.login_settings_layout); 
} 

:だからkleiniの例のコードを使用して

.xmlは次のようになります。

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/customTitleBar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    style="@style/CustomWindowTitle"> 
</TextView> 
1

ベンの方法は私のためにうまくいった!!ここでは、コード

public class PreferenceCustomTitleActivity extends PreferenceActivity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.preference); 

    /** Customize your background, textsize, cachetint, dividers 
     for your list view in the xml **/ 
    setContentView(R.layout.layout_with_simple_listview_only); 

    ListView list = (ListView) findViewById(android.R.id.list); 

    View preferenceHeader = getLayoutInflater().inflate(
      R.layout.preference_header, null); 
    list.addHeaderView(preferenceHeader); 
} 

}

+0

テキストを変更するには? –

1

これは私のために働いた唯一のものです。上記のものの残りの部分は、私の4.3ネクサスタブレットで望みの結果を取得しませんでした。

ウィジェットのような適切なアクションバーを実際に再作成することはできませんでしたが、大きな「設定」タイトルをPreferenceActivityの上に置くことができました。

私は別のstackoverflow答えからヒントを得て、ちょうどそれをより精巧にしています。

PreferenceActivityクラスで
  1. (既存のタイトルバーを削除する)のres/XML/settings.xml内

    public class Settings extends PreferenceActivity· { 
        ... 
        @Override 
        public void onCreate(Bundle savedInstanceState) { 
        requestWindowFeature(Window.FEATURE_NO_TITLE); // This goes first 
        super.onCreate(savedInstanceState); 
        addPreferencesFromResource(R.xml.settings); 
    
  2. 、私が最初にPreferenceCategory

    <?xml version="1.0" encoding="utf-8"?> 
    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
    
        <PreferenceCategory 
         android:layout="@layout/settings_titlebar" /> 
    
        <PreferenceCategory android:title="Notifications"> 
         <Preference ..... 
    
  3. に注意を引くしたいと思います

    res/layout/settings_titlebar.xml

Navals-のMacBook Proの-:海軍$ viの解像度/レイアウト/ settings_titlebar.xml

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:background="@drawable/header_background" 
    android:enabled="false"> 

    <TextView android:src="@drawable/logo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:adjustViewBounds="true" 
     android:background="@android:color/transparent" 
     android:padding="4dip" 
     android:text="Settings" 
     android:textSize="32sp" 
     /> 

    </RelativeLayout> 
関連する問題