Невозможно создать динамическую таблицу в представлении фрагмента Android. На асинхронное завершение обновления просмотра снова. - PullRequest
0 голосов
/ 20 ноября 2018

Цель : заполнить Объект (Class: EventInfo) в представлении Fragment.

Я вызываю асинхронную задачу для метода onCreate() во фрагментеи как только асинхронная задача завершена, я хочу обновить / заполнить объект в представлении фрагмента.У меня есть некоторые сомнения:

  1. В этом табличном представлении не отображается какая-либо информация и невозможно понять, как ее решить?

  2. Как я могунадуть или обновить новое представление после завершения асинхронной задачи .Я пытался вызвать 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, поэтому, пожалуйста, игнорируйте любую глупую ошибку. Любая помощь будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...