我有一个用户名的ArrayList,用于我想要添加xml布局(layout_one_user.xml)的每个用户名,并将用户名String放入布局中存在的每个TextView(name_user)中。
主要活动中的代码是:
ll_counts = (LinearLayout) findViewById(R.id.ll_counts);
lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
LayoutInflater inflater_one_user = MainScreen.this.getLayoutInflater();
View layout_one_user = inflater_one_user.inflate(R.layout.layout_one_user, null);
TextView txt_counts = (TextView) layout_one_user.findViewById(R.id.name_user);
ImageView delete_icon = (ImageView) layout_one_user.findViewById(R.id.icon_delete);
ImageView edit_icon = (ImageView) layout_one_user.findViewById(R.id.icon_edit);
for (int i = 0; i < usernames.size(); i++) {
layout_one_user = new View(this);
txt_counts.setText( usernames.get(i) );
ll_counts.addView(layout_one_user);
}
layout_one_user是:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp"
>
<ImageView
android:id="@+id/icon_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:src="@drawable/ic_edit_black_24dp" />
<ImageView
android:id="@+id/icon_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:layout_toLeftOf="@+id/icon_edit"
android:src="@drawable/ic_delete_black_24dp" />
<TextView
android:id="@+id/name_user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/icon_delete"
android:layout_centerHorizontal="true"
android:text="text"
/>
我主要的布局是:
<LinearLayout
android:id="@+id/ll_counts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/action_bar"
android:layout_centerHorizontal="true"
android:orientation="vertical" >
</LinearLayout>
但它并没有在屏幕上显示任何内容。
答案 0 :(得分:0)
您将自定义布局扩展为layout_one_user
:
View layout_one_user = inflater_one_user.inflate(R.layout.layout_one_user, null);
然后,在循环的第一次迭代中,用空View
覆盖此变量:
layout_one_user = new View(this);
因此,当您向布局添加layout_one_user
时,您正在添加“空视图”并且看不到任何结果。
在我看来,您需要为每个用户充气新布局:
for (int i = 0; i < usernames.size(); i++) {
View layout = getLayoutInflater().inflate(R.layout.layout_one_user, ll_counts, false);
TextView textView = (TextView) layout.findViewById(R.id.name_user);
textView.setText(usernames.get(i));
ll_counts.addView(layout);
}