Цель : заполнить Объект (Class: EventInfo) в представлении Fragment.
Я вызываю асинхронную задачу для метода onCreate()
во фрагментеи как только асинхронная задача завершена, я хочу обновить / заполнить объект в представлении фрагмента.У меня есть некоторые сомнения:
В этом табличном представлении не отображается какая-либо информация и невозможно понять, как ее решить?
Как я могунадуть или обновить новое представление после завершения асинхронной задачи .Я пытался вызвать detach(fragment)
и attach(fragment)
, но это создает бесконечный цикл для метода onCreate()
, а также не дает ожидаемых результатов.
Класс EventInfo, который я хочу заполнить
EventInfo{
private String name;
private String location;
private String date;
}
Класс фрагмента
public class EventTabFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_event_tab, container, false);
String eventDetails = getArguments().getString("eventDetails");
new GetEventTabDetails().execute(eventDetails);
return view;
}
GetEventTabDetails Async
class GetEventTabDetails extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... strings) {
//Calling webservice...
}
@Override
protected void onPostExecute(String eventTabResults) {
//Building an Object to populate it on the view once asyc task is done.
//This is hack but still not working
TableLayout ll = view.findViewById(R.id.tableLayout);
for (int i = 1; i < 10; i++) {
TableRow tbrow = new TableRow(getActivity().getApplicationContext());
tbrow.setLayoutParams(new TableLayout.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
TableRow.LayoutParams.WRAP_CONTENT));
TextView tv1 = new TextView(getActivity().getApplicationContext());
tv1.setLayoutParams(new TableRow.LayoutParams(
TableRow.LayoutParams.MATCH_PARENT,
TableRow.LayoutParams.WRAP_CONTENT));
tv1.setId(i);
tv1.setText("Test id: " + i);
tbrow.addView(tv1);
ll.addView(tbrow, new TableLayout.LayoutParams(
TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
}
}
TableLayout Xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_fragment_bp_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="top"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableLayout
android:id="@+id/tableLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
</TableLayout>
</ScrollView>
</LinearLayout>
Я новичок в разработке для Android, поэтому, пожалуйста, игнорируйте любую глупую ошибку. Любая помощь будет высоко ценится.