如何将TextView ArrayList中的TextView添加到片段的布局?

时间:2013-12-14 14:49:37

标签: android android-layout arraylist android-fragments

我有这个Fragment类:

import iumingv.android.physicalcontribution.R;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class FragmentDispositivi extends Fragment{

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_dispositivi, container, false);

        return rootView;
    }

和这个xml布局:

<?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="match_parent"
    android:orientation="vertical"
    android:background="#fa6a6a" >

    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Dispositivi"
        android:textSize="20dp"
        android:layout_centerInParent="true"/>


</RelativeLayout>

如果我想从ArrayList中添加许多TextView到下面片段的布局,我该怎么办?

2 个答案:

答案 0 :(得分:0)

我认为你应该将RelativeLayout中的TextView更改为ListView。 然后,您可以将所有文本视图添加到ListView

http://developer.android.com/guide/topics/ui/layout/listview.html

答案 1 :(得分:0)

  1. 移动

    <TextView android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:gravity="center"
       android:text="Dispositivi"
       android:textSize="20dp"
       android:layout_centerInParent="true"/>
    

    到其他文件 - 让我们说ui_textview

  2. 然后更改FragmentDispositivi:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    
         View rootView = inflater.inflate(R.layout.fragment_dispositivi, container, false);
         for (int i = 0; i < arrayList.size(); i++) {
              View tv = inflater.inflate(R.layout.ui_textview, container, false);
              rootView.add(tv);
         }
         return rootView;
    

    }

  3. 另一种方法是使用ListView获得相同的结果。