我正在尝试将CustomViewBeta(一个扩展的RelativeLayout)添加到CustomViewAlpha(扩展的LinearLayout) - 这个想法是CustomViewAlpha将一堆CustomViewBetas保存为ListView.无论我尝试什么,它都行不通.我没有看到任何东西 - 没有CustomViewBetas,或者当我在CustomViewBeta中的一个TextViews上尝试setText时它给了我一个NPE
CustomViewAlpha工作正常,因为它在Fragment的XML中是硬编码的:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
...>
<com.path.CustomViewAlpha
android:id="@+id/customviewalpha"
android:orientation="vertical"
android:layout_gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
代码是:
public class CustomViewAlpha extends LinearLayout {
private Context mContext;
public CustomViewAlpha (Context context) {
super(context);
this.mContext = context;
}
public CustomViewAlpha (Context context, AttributeSet attrs) {
super(context, attrs);
this.mContext = context;
}
public CustomViewAlpha (Context context, AttributeSet attrs, int defStyle){
super(context, attrs,defStyle);
this.mContext = context;
}
public void addCustomViewBeta(String someString){
CustomViewBeta customViewBeta = new CustomViewBeta(mContext);
addView(customViewBeta);
}
Run Code Online (Sandbox Code Playgroud)
CustomViewBeta在Fragment的XML中没有硬编码,并且以编程方式添加:
公共类CustomViewBeta扩展RelativeLayout {private Context …