Как добавить TextView из TextView ArrayList в макет фрагмента?
У меня есть этот класс фрагмента:
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>
если я хочу добавить много TextView из ArrayList в макет фрагмента ниже, как я могу это сделать?
2 ответа
Переместить
<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
Затем измените 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;
}
Другой способ - использовать ListView для того же результата.
Я действительно думаю, что вы должны изменить TextView в RelativeLayout на ListView. Затем вы можете добавить все ваши текстовые представления в ListView
http://developer.android.com/guide/topics/ui/layout/listview.html