gpt4 book ai didi

java - 无法正确使用 .setLayoutParams(...) - Android

转载 作者:行者123 更新时间:2023-11-30 01:29:06 27 4
gpt4 key购买 nike

我想尝试在 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com