Android 将自定义布局添加到活动';动态布局
我有一些自定义的Android 将自定义布局添加到活动';动态布局,android,Android,我有一些自定义的线性布局s,我想动态添加到活动的主相对布局。 这是我的自定义布局之一: public class MyLayout1 extends LinearLayout {...} 这是它的my_layout_1.xml文件: <?xml version="1.0" encoding="utf-8"?> <***myPackageName***.MyLayout1 xmlns:android="http://schemas.android.com/apk/re
线性布局
s,我想动态添加到活动
的主相对布局
。
这是我的自定义布局之一:
public class MyLayout1 extends LinearLayout {...}
这是它的my_layout_1.xml
文件:
<?xml version="1.0" encoding="utf-8"?>
<***myPackageName***.MyLayout1
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
......
</***myPackageName***.MyLayout1>
代码工作正常。但是,当我在自定义的
MyLayout1
类中使用findViewById(…)
函数时,它会为所有视图返回null
。如何绑定.xml
文件和Java类?我认为在.xml
中添加包+类名就足够了,但我错了。
我也试着打电话
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.my_layout_1, null);
在
MyLayout1
类中,但是android.view.InflateException:Binary XML文件行#2:Error-inflating-class
错误消息显示在日志窗口中。如果需要调用findViewById()
要访问layout.xml文件中声明的视图实例,需要在中执行此操作。一旦视图完成充气,就会调用该函数。在该函数中,您可以成功地使用findviewbyd()
。当视图膨胀时,在构造函数中使用findViewById()
时,子视图将尚未实例化和添加。这就是它返回null的原因。如果需要调用findviewbyd()
来访问layout.xml文件中声明的视图实例,则需要在中执行此操作。一旦视图完成充气,就会调用该函数。在该函数中,您可以成功地使用findviewbyd()
。当视图膨胀时,在构造函数中使用findViewById()
时,子视图将尚未实例化和添加。这就是它返回null的原因。你是说findViewById()(否)你是如何获得类中的代码的?它在构造函数中吗?在从其他地方调用的方法中?您需要确保“this”引用了从XML膨胀并添加到相对布局的视图。在构建视图时,尚未添加子视图。您将不得不推迟到以后再尝试查找它们。您可能可以在OnFinishedFlate中或在对onLayout的第一次调用中找到视图(请确保调用相应的super.*方法)。您是说findViewById()(no s)您如何获得类中的代码?它在构造函数中吗?在从其他地方调用的方法中?您需要确保“this”引用了从XML膨胀并添加到相对布局的视图。在构建视图时,尚未添加子视图。您将不得不推迟到稍后再尝试查找它们。您可能可以在OnFinishedFlate中或在第一次调用onLayout时找到视图(请确保调用相应的super.*方法)
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.my_layout_1, null);