我想尝试在Android上使用数据库,所以我做了一个小应用程序,允许你将联系人添加到数据库中,然后显示它们。
如果我用XML创建布局,然后用代码编辑文本字段,我就能够显示联系人(来自数据库)。但是我想用代码构建布局,这样我就可以添加尽可能多的联系人。
下面的代码是我用来创建布局的方法,每当我让它运行此代码时,应用程序就会崩溃。我的猜测是参数有问题。如果只输入LayoutParams.MatchContent,它会要求我导入,并给我很多选项,这就是为什么它说LinearLayout.LayoutParams...;
我将生成的布局添加到LinearLayout中。
private LinearLayout createContactView (Contact contact) {
LinearLayout contactInfoWrapper = new LinearLayout(this);
contactInfoWrapper.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
contactInfoWrapper.setOrientation(LinearLayout.VERTICAL);
TextView nameView = new TextView(this);
nameView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
nameView.setText(contact.getName());
contactInfoWrapper.addView(nameView);
TextView numberView = new TextView(this);
numberView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
numberView.setText(contact.getPhoneNumber());
contactInfoWrapper.addView(numberView);
return contactInfoWrapper;
}
2条答案
按热度按时间disbfnqx1#
不要使用
setLayoutParams
,而是在LinearLayout
的addView(View v, LayoutParams params)
方法中使用LayoutParams
:sczxawaw2#
换一条线
对此: