Android:用户选择文本视图背景的颜色



我正在尝试创建一个菜单选项,用户可以在其中选择可以显示textView的颜色。因此,例如,用户选择红色,选择一个设置文本视图的预览按钮红色背景。任何建议都将不胜感激。

public class UserMenu extends Activity implements OnClickListener {
Button preview;
Spinner spinnerColor;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        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 color = spinnerColor.getSelectedItem().toString();
        Title.setBackgroundResource(R.color.color);

    }
}

布局

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/ViewModuleTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/darkBlue"
        android:paddingBottom="10dp"
        android:paddingLeft="10dp"
        android:paddingTop="10dp"
        android:text="@string/addModule"
        android:textColor="@color/white"
        android:textSize="22dp" />
    <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="@style/textColor"/>
     <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>
 public void onClick(View v)
 {
        String color = spinnerColor.getSelectedItem().toString();
        if(color.equalsignorecase("Red"))
         {
            Title.setBackgroundColor(Color.RED);
         }
         else if(color.equalsignorecase("Blue"))
         {
            Title.setBackgroundColor(Color.Blue);
         }
}

更多..

String color = spinnerColor.getSelectedItem().toString();
Title.setBackgroundResource(R.color.color);

它不起作用,您应该使用switch (color)

您可以尝试以下方法: -

  1. 让colormenu.xml中的color_array如下: -

    <item>red</item>
    <item>blue</item>
    <item>green</item>
    <item>black</item>
    
  2. 在您的onclick中添加以下行: -

    int parsed_color = color.parsecolor(color);

  3. 这是修改的代码: -

公共班级主动脉扩展活动实现onclicklistener {

按钮预览;

旋转器SpinnerColor;

textview title;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    spinnerColor = (Spinner) findViewById(R.id.spinnerColorMenu);
   Title = (TextView)findViewById(R.id.ViewModuleTitle);
    preview = (Button)findViewById(R.id.previewButton);
       preview.setOnClickListener(this);
}
public void onClick(View v)
{
    String color = spinnerColor.getSelectedItem().toString();
    int parsed_color = Color.parseColor(color);
   Title.setBackgroundColor(parsed_color );

}

}

这很好。如果其他语句或任何开关都不需要任何内容。

P.S。方法parsecolor()支持#rrggbb #aarrggbb'red','蓝色','green','green',"黑色","白色","灰色"," cyan"," cyanta"," agenta'','Magenta','lightgray','lightgray','lightgray','','lightgray',''darkgray'格式。

相关内容

  • 没有找到相关文章

最新更新