如何使用新的自定义类来从布局托管视图

时间:2014-08-02 06:06:30

标签: android

当我昨天处理一个新视图时,我有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>

0 个答案:

没有答案