我想尝试在android上使用数据库,所以我制作了一个小应用程序,允许您将联系人添加到数据库,然后显示它们。 如果我在xml上创建布局,然后在代码中编辑文本字符,我就能够显示联系人(来自数据库)。但我想在代码中构建布局,以便我可以添加任意数量的联系人。
以下代码是我用来创建布局的方法,每当我运行此代码时应用程序崩溃。我的猜测是params存在问题。如果只输入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;
}
答案 0 :(得分:1)
而不是使用setLayoutParams
,而是使用LayoutParams
的{{1}}方法中的addView(View v, LayoutParams params)
:
LinearLayout
答案 1 :(得分:0)
可以更改行
numberView.setText(contact.getPhoneNumber());
到这个
numberView.setText(String.valueOf(contact.getPhoneNumber()));