ユーザーが選択できるさまざまなスタイルを保持するスタイル xml を作成しました。ただし、ユーザーが何を選択しても、私のスタイルはデフォルトで最後のスタイル (緑) になります。何か不足していますか?メニュークラス
public class UserMenu extends Activity implements OnClickListener {
Button preview;
Spinner spinnerColor;
@Override
public void onCreate(Bundle savedInstanceState) {
if("Red".equals(getIntent().getStringExtra("Theme")));
{
setTheme(R.style.Theme_Red);
}
if("Green".equals(getIntent().getStringExtra("Theme")));
{
setTheme(R.style.Theme_Blue);
}
if("Blue".equals(getIntent().getStringExtra("Theme")));
{
setTheme(R.style.Theme_Green);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_menu);
spinnerColor = (Spinner) findViewById(R.id.spinnerColorMenu);
//TextView Title = (TextView)findViewById(R.id.ViewModuleTitle);
preview = (Button)findViewById(R.id.previewButton);
preview.setOnClickListener(this);
}
public void onClick(View v)
{
String bgColor = spinnerColor.getSelectedItem().toString();
if(bgColor.equals("Red"))
{
Intent intent = getIntent();
intent.putExtra("Theme", "Red");
finish();
startActivity(intent);
}
else if(bgColor.equals("Blue"))
{
Intent intent = getIntent();
intent.putExtra("Theme", "Blue");
finish();
startActivity(intent);
}
else if(bgColor.equals("Green"))
{
Intent intent = getIntent();
intent.putExtra("Theme", "Green");
finish();
startActivity(intent);
}
}
}
レイアウト
<TextView
android:id="@+id/ViewModuleTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:text="@string/addModule"
android:textSize="22dp"
style="?textTitle" />
<TextView
android:id="@+id/lableTextModuleCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/enterModuleCode"
android:layout_marginLeft="10dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
style="?textBody"/>
<Spinner
android:id="@+id/spinnerColorMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/colorMenu"/>
<Button
android:id="@+id/previewButton"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:onClick="previewButton"
android:text="@string/addModule" />
</LinearLayout>
スタイル
<style name ="redBody">
<item name="android:textColor">@color/red</item>
<item name ="android:background">@color/white</item>
</style>
<style name ="redTitle">
<item name="android:textColor">@color/white</item>
<item name ="android:background">@color/red</item>
</style>
<style name ="blueBody">
<item name="android:textColor">@color/darkBlue</item>
<item name ="android:background">@color/white</item>
</style>
<style name ="blueTitle">
<item name="android:textColor">@color/white</item>
<item name ="android:background">@color/darkBlue</item>
</style>
<style name ="greenBody">
<item name="android:textColor">@color/green</item>
<item name ="android:background">@color/white</item>
</style>
<style name ="greenTitle">
<item name="android:textColor">@color/white</item>
<item name ="android:background">@color/green</item>
</style>
<style name = "Theme" parent="@android:style/Theme">
</style>
<style name = "Theme.Red" >
<item name="textTitle">@style/redTitle</item>
<item name="textBody">@style/redBody</item>
</style>
<style name = "Theme.Blue" >
<item name="textTitle">@style/blueTitle</item>
<item name="textBody">@style/blueBody</item>
</style>
<style name = "Theme.Green">
<item name="textTitle">@style/greenTitle</item>
<item name="textBody">@style/greenBody</item>
</style>