0

設定 xml をロードする優先アクティビティがあるアプリケーションがあります。今、私がやりたいことは、アプリケーションで有効にするテーマのリストビューを実装することです。ほとんどの場合、設定 xml でリストビューをセットアップする方法は知っていますが、アプリケーションのさまざまなテーマを有効にする方法はわかりません。誰でも私を正しい方向に向けることができますか?または小さなサンプルコードがあります。

これが私の Preference JAVA ファイルで、その下に私の設定 XML があります。

 public class Prefs extends PreferenceActivity {

ListPreference listPreference;

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settingsbasic);
        //New 
        Preference customPref = (Preference) findPreference("clearcache");
        customPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {

                                public boolean onPreferenceClick(Preference preference)    {
                                        Toast.makeText(getBaseContext(),
                                                        "Cache Cleared",
                                                        Toast.LENGTH_LONG).show();
                                        WebViewClientDemoActivity.web.clearCache(true);
                                        return false; 

                                }       

コードにリストビューがまだありません。実装方法について何か助けがあれば幸いです。キャッシュをクリアするボタンがあります。

これが私の設定XMLです。

   <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <CheckBoxPreference android:key="themes"
            android:title="@string/themes" 
            android:summary="@string/themes_list"
            android:defaultValue="true" />

    <CheckBoxPreference android:key="something"
             android:title="@string/cache" 
             android:summary="@string/somethingelse"
             android:defaultValue="true" />
    <Preference
            android:title="Clear Cache"
            android:summary="Hopefully this Works"
            android:key="clearcache" />

    </PreferenceScreen>

私は 2 つのチェック ボックスを持っています。最初のチェック ボックスをリスト ビューに変更し、テーマのリストの配列を持っています。これらのテーマを有効にする方法がわかりません。テーマごとに個別のレイアウト ファイルを作成する必要がありますか??? または、themes.xmlを使用します。もしそうなら、リストビューでオブジェクトをクリックしてそれらを実装するにはどうすればよいですか???

質問ばかりですみません。どんな助けでも素晴らしいでしょう。

main.xml ファイルで、この main.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:background="@drawable/boardimage"
  android:fadingEdge="vertical"
  android:orientation="vertical" >

  <ImageView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:background="@drawable/boarder"
   android:contentDescription="@string/title"
   android:gravity="center_horizontal"
   android:src="@drawable/banner" >

 </ImageView> 

  <ProgressBar
    android:id="@+id/progressBar1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"/>

 <WebView
   android:id="@+id/webview01"
   android:layout_width="fill_parent"
   android:layout_height="0dp"
   android:layout_gravity="center"
   android:layout_weight="1.12" >

  </WebView>



  </LinearLayout>

したがって、このxmlファイルの内容を変更する方法を知りたいです。私の青のテーマと同じように、背景に別のドローアブルを使用するか、別のサイズの webview を使用するか、イメージビューでイメージをドローアブルにします。どうすればいいですか。

4

1 に答える 1

2

テーマとスタイルについて知りたい場合は、Android 開発者の次のリンクを参照してください: http://developer.android.com/guide/topics/ui/themes.html

2 つのスタイルを構築し、優先度から設定値を指定してテーマを切り替えると、次のコードを使用して、アクティビティでテーマをプログラムで設定できます。setTheme(R.style.MyTheme);

これは、values フォルダーの themes.xml ファイルで次のコードを使用して実行できます。

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="MyTheme" parent="@android:style/Theme.Light">

        <!-- hide the Window Title -->
        <item name="android:windowNoTitle">true</item>

    </style>

</resources>

また、このコードで ListPreference を作成し、 String.xml に文字列配列を追加できます。

 <ListPreference
  android:title="List Preference"
  android:summary="Select the option of the list"
  android:key="listPref"
  android:entries="@array/listDisplayWord"
  android:entryValues="@array/listReturnValue" />

このリンクは役に立ちます: Android マニフェストの同じアクティビティに複数のテーマ属性を追加する方法は?

次のように、listPreference から提供される値を使用して、レイアウトを切り替えることができます。

if(myTheme==1)
     setContentView(R.layout.main1);
else
     setContentView(R.layout.main2);

ただし、これらのレイアウトのコンポーネント (buttons、textViews、EditText、...) の名前は同じでなければなりません。

于 2012-07-24T18:00:14.243 に答える