当我昨天处理一个新视图时,我有7 * 4个编辑文本,因此当用户尝试更改颜色时,我必须添加大量代码来覆盖它们,例如红色
所以我想做这样的事情:
if(item.getItemId() == R.id.menu_table_colors_Red){
EditText Holder = (EditText)mView.findViewById(View_ID);
Holder.setBackgroundResource(R.color.RED);
return true;
}
View_ID来自onCreateContextMenu(),告诉我点击了哪个视图,mView是我的片段视图,它工作正常,直到我需要保存颜色的值,以便用户可以返回并找到颜色他用过:
我在11 api中搜索后找到了两种方法,但是我需要一种方法来处理8 api和更高的api。
第二个是实现自定义的Edittext类,我从解决方案中复制了类来测试它,这里是:
public class NewEditText extends EditText {
private int color;
public NewEditText(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public NewEditText(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public NewEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
public void setBackgroundColor(int color) {
// TODO Auto-generated method stub
this.color=color;
super.setBackgroundColor(color);
}
public int getBackgroundColor() {
return color;
}
}
但我不确定如何使用它?当我这样做时,由于“类强制转换异常”而崩溃了
NewEditText holder = (NewEditText)mView.findViewById(View_ID);
我应该如何使用它?对不起,但我从未使用过自定义类,我找不到解决方案。
编辑1 xml,抱歉它有点大,所以我决定发布其中一天,因为有7天,它们是相同的:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:layout_centerInParent="true"
android:id="@+id/table_view_mondaylayout"
android:layout_margin="0.3dp"
>
<TextView
android:layout_width="32dp"
android:layout_height="match_parent"
android:text="Mon"
android:layout_weight="0"
android:gravity="center"
android:background="@drawable/custom_table"
android:layout_margin="0.3dp"
/>
<EditText
android:layout_width="100dp"
android:layout_height="match_parent"
android:text="125 \n down"
android:textSize="14sp"
android:layout_weight="1"
android:background="@drawable/custom_table"
android:id="@+id/table_monday1"
android:layout_margin="0.3dp"
/>
<EditText
android:layout_width="100dp"
android:layout_height="match_parent"
android:text="125 \n down"
android:textSize="14sp"
android:layout_weight="1"
android:background="@drawable/custom_table"
android:id="@+id/table_monday2"
android:layout_margin="0.3dp"
/>
<EditText
android:layout_width="100dp"
android:layout_height="match_parent"
android:text="125 \n down"
android:textSize="14sp"
android:layout_weight="1"
android:background="@drawable/custom_table"
android:id="@+id/table_monday3"
android:layout_margin="0.3dp"
/>
<EditText
android:layout_width="100dp"
android:layout_height="match_parent"
android:text="125 \n down"
android:textSize="14sp"
android:layout_weight="1"
android:background="@drawable/custom_table"
android:id="@+id/table_monday4"
android:layout_margin="0.3dp"
/>
</LinearLayout>