我正在尝试创建一个自定义编辑文本并在这里陷入困境......
请参阅下面的代码
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public static class MyEditText1 extends EditText{
Paint mPaint;
public MyEditText1(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyEditText1(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint=new Paint();
mPaint.setColor(Color.BLACK);
}
@Override
protected void onDraw(Canvas c){
super.onDraw(c);
int height=getHeight();
int width=getWidth();
int linespace=10;
int count=height/linespace;
for(int i=0;i<count;i++){
c.drawLine(0, i*linespace, width, i*linespace, mPaint);
}
}
}
}
MyEditText类是内部类
我在我的xml中将此视图称为
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.example.customedittext.MainActivity.MyEditText1
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:ems="10"
android:inputType="textNoSuggestions"/>
</RelativeLayout>
但是应用程序在启动后立即关闭。但是当我将内部类保存在一个单独的文件中作为MyEditText.java(并在xml中引用它)时它工作得很好..保持它的问题是什么内在的类......即使我让我的内部类静止了吗?
答案 0 :(得分:6)
因为您的视图是内部类,所以您需要引用它与XML略有不同(请注意$
符号):
com.example.customedittext.MainActivity$MyEditText1