2012-01-19 22 views
10

Tôi đang cố gắng tạo một PreferenceScreen nhưng tôi muốn thiết kế Hoạt động giống như toàn bộ dự án.Android: Làm thế nào có thể tùy chỉnh PreferenceScreen?

Làm cách nào để tạo thiết kế PreferenceScreen tùy chỉnh?

+0

Xin lỗi, bạn có thể mở rộng câu hỏi của mình không? Hoặc có thể làm cho nó sạch sẽ hơn? Tôi nghĩ rằng của bạn là một vấn đề thiết kế/đồ họa – StErMi

+0

ya của nó, nhưng tôi muốn hỏi doable của nó. – Basbous

Trả lời

2

tôi nghĩ đây là những gì bạn đang tìm kiếm.

PreferenceScreen screen = createPreferenceHierarchy(); 

..
this.setContentView(rootView); => tôi nghĩ rằng bạn có thể đặt nó từ bố cục xml cũng có.

setPreferenceScreen(screen); 
+0

liên kết bị hỏng: ( – philipp

12

Vâng, có thể thực hiện được. Xin lỗi cho việc bố trí, dán tôi không bao giờ dường như để giữ cho các định dạng đúng, nhưng nội dung hoạt động ...

Preferences.java

import android.content.Intent; 
    import android.os.Bundle; 
    import android.preference.PreferenceActivity; 
    import android.view.View; 
    import android.widget.Button; 

    public class Preferences extends PreferenceActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.preference_holder); 
    addPreferencesFromResource(R.layout.preferences); 

    Button backButton = (Button) findViewById(R.id.backPrefBurron); 
    backButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent = new Intent(getBaseContext(), 
        BTFirstTab.class); 
      startActivity(myIntent); 
     } 
    }); 

    } 
    } 

sau đó một sở thích holder.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" android:layout_height="fill_parent" 
android:orientation="vertical"> 
<LinearLayout android:orientation="horizontal" 
    android:background="@color/bto_dark_green" android:layout_width="fill_parent" 
    android:gravity="center_vertical" android:layout_height="wrap_content" 
    android:paddingTop="4dip"> 
    <Button android:id="@+id/backPrefBurron" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:text="Home" /> 

    <TextView android:id="@+id/backText" android:textSize="14dip" 
     android:paddingLeft="5dip" android:textColor="@color/white" 
     android:textStyle="bold" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:layout_weight="1.0" 
     android:text="Preferences: Home will update all areas of the app" /> 
</LinearLayout> 
<ListView android:id="@android:id/list" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 
</LinearLayout> 

sau đó sở thích .xml

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@color/bto_light_green"> 

<EditTextPreference android:title="Your BTO UserName" 
    android:key="username" android:summary="Please provide your username">   </EditTextPreference> 
<EditTextPreference android:title="Your BTO Password" 
    android:password="true" android:key="password" android:summary="Please provide your password (case sensitive)"></EditTextPreference> 
<ListPreference android:title="Species order" 
    android:summary="This preference selects the species order for some viewing sightings activities" 
    android:key="speciesorder" android:defaultValue="date_order" android:entries="@array/listArray" 
    android:entryValues="@array/listValues"></ListPreference> 
    </PreferenceScreen> 

Bằng cách này, tôi có tiêu đề chung mà tôi sử dụng trong các trang khác.

+0

là điều này có thể xảy ra khi tôi đang sử dụng preferencesFragment? – Michal