9
Im mới cho Android và tôi đang cố gắng thêm một TableRow, mà tôi đã thực hiện với xml, một TableLayout lập trình. Tôi nhận được Force Đóng, hầu hết là NullPointerExcpetions.Làm thế nào để thêm TableRow từ xml sang TableLayout theo lập trình?
Dưới đây là tôi lớp java
public class DayFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.subjects_list, container, false);
TableLayout tl = (TableLayout) view.findViewById(R.id.tl);
TableRow tr = (TableRow) view.findViewById(R.id.tr_row);
tl.addView(tr); //not working, obviously im missing something
//xml parsing stuff
return view;
}
}
Đây là bố cục của mình với TableLayout:
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/horizontalScrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="5dp" >
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fillViewport="true"
android:orientation="vertical" >
<TableLayout
android:id="@+id/tl"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<include
android:id="@+id/header"
layout="@layout/table_header" />
<include android:id="@+id/h_divider"
layout="@layout/horizontal_divider"/>
</TableLayout>
</ScrollView>
</HorizontalScrollView>
và các TableRow:
<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tr_row"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tv_hour"
android:layout_weight="1"
android:gravity="center"
android:padding="8dp"
android:textSize="15sp"
android:textStyle="bold" />
<View
android:layout_weight="1"
android:background="@drawable/vertical_cell_divider" />
<TextView
android:id="@+id/tv_subject"
android:layout_weight="1"
android:gravity="left"
android:padding="8dp"
android:textSize="18sp" />
<View
android:layout_weight="1"
android:background="@drawable/vertical_cell_divider" />
<TextView
android:id="@+id/tv_start"
android:layout_weight="1"
android:gravity="left"
android:padding="8dp"
android:textSize="18sp" />
<TextView
android:id="@+id/tv_bar"
android:layout_weight="1"
android:gravity="left"
android:textSize="18sp" />
<TextView
android:id="@+id/tv_end"
android:layout_weight="1"
android:gravity="left"
android:padding="8dp"
android:textSize="18sp" />
</TableRow>
tôi đã cố gắng rất nhiều cách khác nhau để đạt được nó nhưng vẫn không có gì.
YES! Cảm ơn bạn rất nhiều vì đã giải quyết được vấn đề của tôi. Bạn cũng có thể cho tôi biết cách thêm cùng một chế độ xem nhiều hơn một lần không? Đứa trẻ đã có một phụ huynh vì vậy tôi không thể thêm nó nhiều hơn bằng cách chỉ cần đặt tl.addView (tr); – Chris95X8
lặp lại mã bên trong cho vòng lặp. nhưng hãy nhớ rằng bạn đã tạo mảng xem trước khi lặp lại trong vòng lặp. sau đó cho mỗi khung nhìn trong mảng làm tăng table_row_layout và thêm nó vào bảng Layout. – TNR
tôi chỉ làm nó như thế này và nó làm việc for (int i = 0; i <7; i ++) { \t \t \t \t \t Xem tr = inflater.inflate (R.layout.subject_row, null, false) ; \t \t tl.addView (tr); \t \t \t \t} – Chris95X8