尝试添加多个视图但得到一个空白屏幕

时间:2013-08-08 03:43:54

标签: java android

我使用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>

1 个答案:

答案 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);
}