Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android CustomView没有';行不通_Android - Fatal编程技术网

Android CustomView没有';行不通

Android CustomView没有';行不通,android,Android,我尝试使用一个表示domino的自定义视图类,遵循answer的解决方案。无错误,应用程序运行但未显示任何内容。由于它与链接中引用的问题非常相似,我想这只是一个小问题,但我没有在代码中找到错误 Domino.java文件: package com.example.android.dominoneu; import android.content.Context; import android.widget.LinearLayout; public class Domino extends

我尝试使用一个表示domino的自定义视图类,遵循answer的解决方案。无错误,应用程序运行但未显示任何内容。由于它与链接中引用的问题非常相似,我想这只是一个小问题,但我没有在代码中找到错误

Domino.java文件:

package com.example.android.dominoneu;

import android.content.Context;
import android.widget.LinearLayout;


public class Domino extends LinearLayout {

    public Domino(Context context){

        super(context);
    }
}
domino.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<com.example.android.dominoneu.Domino xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:Domino="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal" android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="LEFT"
        android:textColor="#000000"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RIGHT"
        android:textColor="#000000"/>

</com.example.android.dominoneu.Domino>
Domino(上下文上下文,属性集属性)
构造函数添加到视图中。XML使用它来创建视图的实例

如果使用xml将
Domino(上下文上下文,属性集属性)构造函数添加到视图中,则无需使用
addView
手动添加它。XML使用它来创建视图的实例


而且不需要使用
addView
手动添加它,如果您使用xml

您应该创建这个构造函数

public Domino(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
/*do here all what you want with custom view*/
}

您应该创建这个构造函数

public Domino(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
/*do here all what you want with custom view*/
}

您必须像这样添加所有4个超级构造函数

public class Domino extends LinearLayout {
    public Domino(Context context) {
        super(context);
    }

    public Domino(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public Domino(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public Domino(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }
}

您必须像这样添加所有4个超级构造函数

public class Domino extends LinearLayout {
    public Domino(Context context) {
        super(context);
    }

    public Domino(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public Domino(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public Domino(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }
}

我可能错了,但您只是在扩展线性布局(这就是您想要的吗?)。 如果希望每次引用Domino视图时都显示自定义布局,则需要在构造函数中展开布局。请参见另一个问题中的以下代码:

public Card(Context context) {
    super(context);

    View view =  LayoutInflater.from(getContext()).inflate(
            R.layout.card, null);

    this.addView(view);

}
如果使用以下充气方法,则不必像其他问题一样使用“this.addView(view);”

LayoutInflater.from(getContext()).inflate(R.layout.card, this, true);
因此,您的domino.xml如下所示(示例):

您的活动将是相同的(如果您试图动态添加Domino视图),或者在MainActivity布局中引用Domino视图


编码很好。

我可能错了,但您只是在扩展线性布局(这就是您想要的吗?)。 如果希望每次引用Domino视图时都显示自定义布局,则需要在构造函数中展开布局。请参见另一个问题中的以下代码:

public Card(Context context) {
    super(context);

    View view =  LayoutInflater.from(getContext()).inflate(
            R.layout.card, null);

    this.addView(view);

}
如果使用以下充气方法,则不必像其他问题一样使用“this.addView(view);”

LayoutInflater.from(getContext()).inflate(R.layout.card, this, true);
因此,您的domino.xml如下所示(示例):

您的活动将是相同的(如果您试图动态添加Domino视图),或者在MainActivity布局中引用Domino视图


很好的编码。

domino.xml不是activity\u main.xml可能这是您的问题domino.xml不是activity\u main.xml可能这是您的问题只有一个带上下文和AttributeSet的构造函数足够只有一个带上下文的构造函数,AttributeSet足够只有一个带上下文的构造函数,AttributeSet足够只有一个带上下文的构造函数属性集是足够的你是对的,这就是我想要的…我混淆了问题(动态添加视图与将其用作xml)你是对的,这就是我想要的…我混淆了问题(动态添加视图与将其用作xml)