Java 如何添加将视图扩展到主活动的自定义类?
我在向主活动添加自定义类时遇到问题 自定义类中的代码:Java 如何添加将视图扩展到主活动的自定义类?,java,android,Java,Android,我在向主活动添加自定义类时遇到问题 自定义类中的代码: public class DetailView extends View { public DetailView(Context context) { super(context); this.setBackgroundColor(0xFF00FF00 ); } } 主要活动中的代码: protected void onCreate(Bundle savedInstanceStat
public class DetailView extends View {
public DetailView(Context context) {
super(context);
this.setBackgroundColor(0xFF00FF00 );
}
}
主要活动中的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
linearLayout = (LinearLayout) findViewById(R.id.linearLayout1);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
linearLayout.setOrientation(LinearLayout.VERTICAL);
txt = new TextView(this);
txt.setText("hello");
txt.setId(6);
txt.setLayoutParams(params);
linearLayout.addView(txt);
DetailView detailView = new DetailView(this.getApplicationContext());
linearLayout.addView(detailView);
}
为什么看不到detailView?
我是android开发新手,所以我需要任何我能得到的帮助,或者一些好的链接或任何东西。谢谢视图已添加,但没有维度集。看看现有的代码,我想您希望它填充宽度,并有一个小的高度-只是假设。因此,请尝试以下方法:
DetailView detailView = new DetailView(this);
params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 2); // 2 pixels height
linearLayout.addView(detailView, params);
另外,
DetailView
的上下文是活动,而不是应用程序上下文。我想您没有设置视图的高度/宽度。如何设置宽度和高度?为什么不从XML设置此布局?我在main.XML中有此内容,但我真的对XML内容感到困惑?如果XML中有高度/宽度,是否需要设置高度/宽度?啊,好的,谢谢,所以我应该更改getApplicationContext()并获取主活动的上下文?是的,但是您还需要设置参数。