2013-07-31 40 views
0

我有一个类ConditionalEditText,它是一个包含EditText和TextView的复合自定义视图。这个视图的布局是用XML定义的。我想重写EditText的onDraw方法。但是因为它已经从XML实例化了。我不能这样做Android:重写onDraw没有子类时,从xml实例化View

EditText edt = new EditText() { 
    protected void onDraw() { 
     .... 
    } 
} 

有什么办法来覆盖比sublclassing的EditText或做UI实例其他的onDraw()方法的Java,而不是XML?

回答

0

您应该重写的EditText然后实例自己的自定义的EditText在XML:

public class CustomEditText extends EditText { 
    public CustomEditText(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public void onDraw() { 
     // your code 
    } 
} 

FOR XML实例:

<com.android.example.CustomEditText 
    ... 
/> 

欲了解更多信息,请参见官方文档:http://developer.android.com/guide/topics/ui/custom-components.html#modifying

+0

我知道我总是可以做到这一点。我想知道的是,我是否可以使用匿名内部类来重写方法,就像我在问题中提到的那样。 – iTwenty

+0

对不起,我没有看到最后一部分。我认为不扩展课程是不可能的 – buzeeg