从自定义视图覆盖功能时退出 Android 应用程序

android application is exited when override function from custom view

提问人:Huy Ngô 提问时间:1/11/2023 更新时间:1/11/2023 访问量:14

问:

我有一个自定义视图并想显示它,但是如果我从自定义视图(setOnClickListener,...)调用该方法,应用程序将自动退出,我不知道为什么,希望每个人都回答。

public class MotionEventActivity extends AppCompatActivity{


    @SuppressLint("ClickableViewAccessibility")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //MyView myView = new MyView(this);
        setContentView(R.layout.motion_view);
        MyView myView = findViewById(R.id.main);
        myView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });
        
    }
}

下面是自定义视图的代码:

public class MyView extends View {
    public  Paint paint = null;
    public  int radius = 82;
    public  List<CoordinateButton> arrButton = new ArrayList<CoordinateButton>();
    MyView(Context context){
        this(context, null);
    }
    public MyView(Context context, AttributeSet attributeSet) {
        super(context);
        arrButton.add(new CoordinateButton("S",(float)46.0 , (float) 37.0,  1, "#F08080", "#DC143C", "#F08080"));
        arrButton.add(new CoordinateButton("H",(float)1866.0 , (float) 699.0,  4, "#F0E68C", "#FFFF00", "#F0E68C"));


        paint = new Paint();
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        for(CoordinateButton button : arrButton){
            paint.setColor(Color.parseColor(button.getColorButton()));
            canvas.drawCircle(button.getXButton() + radius, button.getYButton() + radius, radius, paint);
            paint.setColor(Color.BLACK);
            paint.setTextSize(45);
            paint.setTextAlign(Paint.Align.CENTER);
            canvas.drawText(button.getTextButton(),button.getXButton() + radius, button.getYButton() + radius +15, paint);
        }

    }

 }

下面是 xml 文件的代码:

<?xml version="1.0" encoding="utf-8"?>
<com.example.motionevent.MyView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MotionEventActivity">

</com.example.motionevent.MyView>
覆盖 android-custom-view 的 Android XML 方法

评论

0赞 TDG 1/11/2023
检查 logcat。我相信它会包含原因。

答: 暂无答案