Code Bye

自定义的view如果写在xml里的话,应该如何实例化?

public class CanvasView extends View
{
     Paint paint;    
     public CanvasView(Context context, AttributeSet attrs) 
     {    
         super(context);    
         paint = new Paint();   
        ……
     }    
       
     @Override    
     protected void onDraw(Canvas canvas) 
     {    
    	……
     }    
}

然后我在它所在的activity的布局文件里这么写的:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <com.zero.client.CanvasView
        android:id="@+id/CanvasView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>

然后在activity里面,为了把它实例化,写的是:

CanvasView canvasView;
canvasView = (CanvasView)findViewById(R.id.CanvasView);

但是这样之后canvasView仍然是null,请问我应该怎么写才是对的? 谢谢~~

不写在xml中呢,直接用代码生成
引用 1 楼 lulong1985 的回复:

不写在xml中呢,直接用代码生成

那个activity里面不止有一个自定义view,还要放别的东西…… 难道都必须动态生成么……


40分
首先需要导入这个XML文件:
layout = (RelativeLayout) getLayoutInflater().inflate(R.layout.lId)
引用 3 楼 cfczdws 的回复:

首先需要导入这个XML文件:
layout = (RelativeLayout) getLayoutInflater().inflate(R.layout.lId)

非常感谢~

楼主我遇到了同样的问题,能请教一下吗?
LZ分享下,,遇到了类似情况

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明自定义的view如果写在xml里的话,应该如何实例化?