我想尝试在 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;
}
最佳答案
不使用 setLayoutParams
,而是在 LinearLayout< 的
:addView(View v, LayoutParams params)
方法中使用 LayoutParams
/
TextView nameView = new TextView(this);
nameView.setText(contact.getName());
contactInfoWrapper.addView(nameView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
关于java - 无法正确使用 .setLayoutParams(...) - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36009731/