カスタム編集テキストを作成しようとしていますが、ここで立ち往生しています...
以下の私のコードをご覧ください
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で参照すると)、正常に動作します。内部クラスとして保持することの問題は何ですか。 。内部クラスを静的にしたのに?