我使用LinearLayout和TextView创建了一个自定义xml文件。我有一个for循环,我想通过一个ArrayList并将视图添加到每个对象的ScrollView。下面是我试图实现的代码,但它只是给我一个空白屏幕。我试着看看ArrayList是否为空,但事实并非如此。当我尝试这个时,我真的不知道我在做什么。我只想看看它是否有效,但问题不是那么有什么问题?
for(int x = 0; x < runs.size(); x++){
inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.run_layout, (ViewGroup) getCurrentFocus());
TextView name = (TextView) layout.findViewById(R.id.tvRunName);
name.setText(runs.get(x).getName());
llRuns.addView(layout);
}
继承了run_layout xml ....
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/run_background" >
<TextView
android:id="@+id/tvRunName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_gravity="center"
android:layout_marginTop="10dp" />
这是活动xml ....
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".YourRuns"
android:background="#181818"
android:id="@+id/llYourRunsLayout">
<ScrollView
android:id="@+id/svRuns"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/llRuns"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
答案 0 :(得分:0)
将(ViewGroup)getCurrentFocus()更改为null,因为inflater.inflate()第二个参数是视图的父级,当您启动默认活动时没有具有焦点的元素。并且你指出两个父母首先看膨胀,第二个你说要将布局添加到llRuns。
for(int x = 0; x < runs.size(); x++){
inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.run_layout, (ViewGroup) getCurrentFocus());
TextView name = (TextView) layout.findViewById(R.id.tvRunName);
name.setText(runs.get(x).getName());
llRuns.addView(layout);
}