私のdrawable-hdpiフォルダには、awidgetの背景となる4つの画像ファイル(.png)があります。デフォルトでは、LinearLayoutにはandroid:background = "@ drawable/goldgreenbg"が設定されています。ユーザーが背景を変更できるようにするための設定画面を作成しました。 どうすればいいですか?私はそれのためにこのコードを使用したいと思います:Androidセットのウィジェットの背景
if (listpref.equals("color1"))
{
Toast.makeText(EditPreferences.this, "Black" + listpref, Toast.LENGTH_LONG).show();
}
else if (listpref.equals("color2"))
{
Toast.makeText(EditPreferences.this, "Brown" + listpref, Toast.LENGTH_LONG).show();
}
アップデート:私はこのコードを入れなければなら ? MainActivity.java:アクティビティ用 UpdateService.java:ウィジェット用 EditPreferences.java:設定用 Main.xmlにはlistviewが含まれ、widgetlayoutにはidが含まれています。
あなたが出回っ(setContentView
を使用)、画面に
LinearLayout
を持って、あなたはそのように非常に簡単に背景を変更することができますと仮定
setContentView(R.layout.main);
preferences = PreferenceManager.getDefaultSharedPreferences(this);
String listpref = preferences.getString("listPref", "n/a");
LinearLayout ll = (LinearLayout) findViewById(R.id.widgetlayout);
if (listpref.equals("color1"))
{
Toast.makeText(MainActivity.this, "Black" + listpref, Toast.LENGTH_LONG).show();
ll.setBackgroundDrawable(getResources().getDrawable(R.drawable.blackbg));
}
else if (listpref.equals("color2"))
{
Toast.makeText(MainActivity.this, "Brown" + listpref, Toast.LENGTH_LONG).show();
ll.setBackgroundDrawable(getResources().getDrawable(R.drawable.brownbg));
}
いいね。そしてこのコードをどこに置くのですか?私はそれをEditPreferences.java(PreferenceActivityを拡張)に入れますが、動作しません(トーストは最初に自分の "設定" btnをクリックしたときにのみ表示されますが、もう一度クリックして別の色を選択するとmsgをスクロールしません)。 アクティビティ用のMainActivity.javaと、ウィジェット用のUpdateService.javaもあります。UpdateService.javaのonCreateメソッドを入れてみましたが、どちらも動作していません。 – erdomester
あなたはその設定を保存していると仮定して、あなたの "setContentView()"コール – Nanne
私はMainActivity.javaにコードを入れなければならないかどうか、UpdateService.javaにコードを入れなければならないかどうかはわかりません。 – erdomester