如何添加光标并激活我的 editText?

How to add cursor and activate my editText?

实际上我正在我的 android 应用程序中创建一个 自定义 EditText。 我所做的是创建了一个名为 CustomEditText 的 class,我正在其中绘制我的 EditText。其代码如下:

public class CustomEditText extends View {

String mText;
Context mContext;
Paint paint = new Paint();

public CustomEditText(Context context) {
    super(context);
    mContext = context;
    paint.setColor(Color.WHITE); // You could setup the background etc here
    paint.setStyle(Style.FILL);
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    drawTextOnCanvas(canvas, mText);
}

private void drawTextOnCanvas(final Canvas canvas, String mText) {
    canvas.drawPaint(paint);

    final EditText editText = new EditText(mContext);
    editText.setTextColor(BLACK);
    editText.setEnabled(true);

    editText.setDrawingCacheEnabled(true);
    editText.measure(MeasureSpec.makeMeasureSpec(canvas.getWidth(), MeasureSpec.EXACTLY), 50);

    editText.layout(0, 0, editText.getMeasuredWidth(), editText.getMeasuredHeight());

    canvas.drawBitmap(editText.getDrawingCache(), 0, 0, paint);
    editText.setDrawingCacheEnabled(false);
}

并且此 class 正在 MainActivity 中使用以下代码调用:

    CustomEditText editText = new CustomEditText(this);
    setContentView(editText);

接下来我应该做什么来添加一个 cursor 并使这个 CustomEditText 像正常的 editText( 这意味着它应该能够 accept, select and clear 输入文字 ).

如果您的 drawTextOnCanvas() 工作正常,只需将 CustomEditText 扩展 EditText 即可。 (而不是 view

如果我正确理解了您的评论,您只需这样做:

public class CustomEditText extends EditText {

   Context mContext;
   Paint paint;
   EditText editText;


   @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
   public CustomEditText(Context context) {
      super(context);
      paint = new Paint();
      editText = new EditText(context);
      mContext = context;
      paint.setColor(Color.GREEN); 
      paint.setStyle(Paint.Style.FILL);

  }

  @Override
  protected void onDraw(Canvas canvas) {
     canvas.drawPaint(paint);
     super.onDraw(canvas);
  }
}