xml-Android自定义view失败

问题描述

Android自定义view失败

安卓编程时想在xml布局中自定义一个view,但当把自定义的view写在xml里面时,就会报错说The following classes could not be instantiated:- com.example.wifidetection.MyPaint.MyView 。
其中MyView就是我自定义的view,前面是它的路径,里面wifideection是包名,MyPaint是MyView所在的类,代码如下:

<?xml version="1.0" encoding="utf-8"?>
xmlns:tools="http://schemas.android.com/tools"
xmlns:custom="http://schemas.android.com/apk/res/com.example.wifidetection"
android:id="@+id/mScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" >

android:orientation = "vertical"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<Button
    android:id="@+id/start"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="开始绘图" />

<com.example.wifidetection.MyPaint.MyView
    android:layout_width="200dp"
    android:layout_height="100dp"
   />

MyPaint中是这样的

public class MyPaint extends ActionBarActivity {

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ·····
    setContentView(R.layout.paint_layout);//显示MyView布局
}

class MyView extends View
{
    public MyView(Context context, AttributeSet attrs)
    {
        this(context, attrs, 0);
    }  

    public MyView(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
    }
       public MyView(Context context){
                 super(context);

一直搞不懂,网上也没找到什么好的解释,求论坛里大神解答

解决方案

MyView 是内部类,把myview独立一个.java文件,定义成public类

解决方案二:

要使用MyView作为布局的话,你可以直接将MyView单独作为一个类,然后再xml中引用;在xml中引用应该只能到 .MyPaint,然后再java文件中操作MyView,好像没有像你这么写的吧!

解决方案三:

MyPaint.MyView这个自定义的view不能只有一个带Context的构造函数,需要至少带两个参数的构造函数
public .MyView(Context context, AttributeSet attrs)

解决方案四:

public myView(Context context,AttributeSet attrs){

   super(context, attrs);

}
这样一个构造函数,貌似你的是错的,你看一下,试着改一下!

解决方案五:

public myView(Context context,AttributeSet attrs){

   super(context, attrs);

}
这样一个构造函数,貌似你的是错的,你看一下,试着改一下!

时间: 2024-09-13 21:37:58

xml-Android自定义view失败的相关文章

android自定义view插入xml

问题描述 android自定义view插入xml 自定义View代码如下.我希望把这个view插入到一个layout的xml的文件中.一直出错,错误类型是error inflating class.应该是这个View出的问题package com.example.browserstation; import java.util.Timer;import java.util.TimerTask; import android.content.Context;import android.graph

Android自定义View研究--View中的原点坐标和XML中布局自定义View时View触摸原点问题

这里只做个汇总~.~独一无二 文章出处:http://blog.csdn.net/djy1992/article/details/9715047 Android自定义View研究--View中的原点坐标相关问题 我们自定义了View,但是有没想过一个问题,就是View中的(0,0)坐标,也就是原点坐标在哪??我们是不是有时候很困惑,接下来我们就来研究View中的原点坐标相关的问题. 一.new DuView时View的原点 我们通过从View中绘制一条从原点到右下角的线来看看这个View中的原点

Android自定义View中attrs.xml的实例详解

Android自定义View中attrs.xml的实例详解 我们在自定义View的时候通常需要先完成attrs.xml文件 在values中定义一个attrs.xml 然后添加相关属性 这一篇先详细介绍一下attrs.xml的属性. <?xml version="1.0" encoding="utf-8"?> <resources> //自定义属性名,定义公共属性 <attr name="titleText" for

Android自定义View实现支付宝支付成功-极速get花式Path炫酷动画

本文手把手教你图片->SVG->Path的姿势.. 从此酷炫Path动画,如此简单. 效果先随便上几个图,以后你找到的图有多精彩,gif就有多精彩: 随便搜了一个铅笔画的图,丢进去 随手复制的二维码icon 来自大佬wing的铁塔 前文回顾 这里简单回顾一下前文,GIF如下图: PathAnimView接受的唯一数据源是Path(给我一个Path,还你一个动画View) 所以内置了几种将别的资源->Path的方法: 直接传string.(A-Z,0-9 "." &qu

组合-android自定义view怎样指定自定义view的布局

问题描述 android自定义view怎样指定自定义view的布局 我有现成的布局xml文件,现在想定义一个组合的自定义view,怎样把这个view的布局指定为一个xml文件 解决方案 LayoutInflater.from(mActivity).inflate(R.layout.mainscreen_title, this, true);这样就行了,this是当前的View,而后面这两个参数是将R.layout.mainscreen_title attachToRoot 也就是以当前这个Vie

Android自定义View——自定义搜索框(SearchView)

概述 在Android开发中,当系统数据项比较多时,常常会在app添加搜索功能,方便用户能快速获得需要的数据.搜索栏对于我们并不陌生,在许多app都能见到它,比如豌豆荚 在某些情况下,我们希望我们的自动补全信息可以不只是纯文本,还可以像豌豆荚这样,能显示相应的图片和其他数据信息,因此Android给我们提供的AutoCompleteTextView往往就不够用,在大多情况下我们都需要自己去实现搜索框. 分析 根据上面这张图,简单分析一下自定义搜索框的结构与功能,有  1. 搜索界面大致由三部门组

Android自定义View之圆形进度条总结

最近撸了一个圆形进度条的开源项目,算是第一次完完整整的使用自定义 View .在此对项目开发思路做个小结,欢迎大家 Star 和 Fork. 该项目总共实现了三种圆形进度条效果 CircleProgress:圆形进度条,可以实现仿 QQ 健康计步器的效果,支持配置进度条背景色.宽度.起始角度,支持进度条渐变 DialProgress:类似 CircleProgress,但是支持刻度 WaveProgress:实现了水波纹效果的圆形进度条,不支持渐变和起始角度配置,如需此功能可参考 CircleP

波形出界-如何设置Android自定义View的Height和Width?

问题描述 如何设置Android自定义View的Height和Width? 在XML布局文件中可以设置有效的height和width属性,但是在代码中用怎么办呢?还有个问题,该自定义View是用来做示波器控件的.在该View中有一块矩形区域是用来显示波形的,在Y轴方向上可以调整幅度,问题就来了,调幅时,有可能波形会超出这个矩形区域,连矩形上边和下边都会有波形,怎么可以把超出的这部分隐藏或者根本就让波形到达不了那些边界外的地方呢? 我画坐标网格和波形都是依据坐标连成线这么画出来的. 解决方案 vi

优化-关于Android自定义View的一个问题,进来讨论一下

问题描述 关于Android自定义View的一个问题,进来讨论一下 1.自己有时候会使用java结合xml的写法,比如写一个ActionBar 代码如下 java: 用了inflater来加载 xml的布局如下: 2.进来我仔细想了一下,自定义的TitleBarView是LinearLayout,布局也是LinearLayout,TitleBarView添加了一个LinearLayout,那不是重复了一个布局,是嵌套了一个 布局 3,能有方法不嵌套吗?防止多一个LinearLayout 解决方案