我正在尝试创建一个自定义视图,它允许我添加图像和文本。我这样做的原因是因为在我正在创建的应用程序中,我一遍又一遍地重复相同的代码以实现这一点,我想尝试将其包装到自己的自定义视图中,这样我就可以使用设置器和位置相对于彼此的视图,将所有这些代码放在一个简单易用的类中。
我可以将文本视图和图像视图添加到视图中,但是当我尝试将它们彼此相对定位时,我总是会遇到 NPE 崩溃。
这是我到目前为止的代码,它只是添加了一个 TextView,然后尝试在我的自定义视图中将 TextView 居中。
public class MultiView extends RelativeLayout {
Context cx;
int images = 0;
public MultiView(Context context) {
super(context);
cx = context;
}
public void addText(String textParam) {
TextView tv = new TextView(cx);
tv.setText(textParam);
tv.setTextColor(Color.WHITE);
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) tv
.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);
// tv.setLayoutParams(layoutParams); // the app crashes when I add this line
this.addView(tv);
}
}