如何在AsyncTask的post方法中显示TableLayout中的数据

时间:2015-01-30 06:41:39

标签: android json android-asynctask android-tablelayout

我想在ArrayList中显示JSON格式的TableLayoutTableLayout是动态的,并在onPost的{​​{1}}方法中使用。

如何将数据从AsyncTask导入ArrayList。 这是我使用TableLayout的活动。

希望在TableLayoutArrayList中显示名为ContactList的TableLayout

ArrayList

3 个答案:

答案 0 :(得分:2)

好的。现在试试这个。从oncreate中删除这些行

 itemsName = new TableRow(this);
 tvItemName0 = new TextView(this);
 tvItemName1 = new TextView(this);
 tvItemName2 = new TextView(this);

使用此帖子执行方法。我已在此PostExcecute()方法中添加了这些行。

protected void onPostExecute(Void result) {
                super.onPostExecute(result);
                // Dismiss the progress dialog
                if (pDialog.isShowing())
                    pDialog.dismiss();
                for (int i = 0; i < contactList.size(); i++) {
itemsName = new TableRow(this);
     tvItemName0 = new TextView(this);
     tvItemName1 = new TextView(this);
     tvItemName2 = new TextView(this);
                    itemsName.setLayoutParams(new TableRow.LayoutParams(
                            TableRow.LayoutParams.WRAP_CONTENT,
                            TableRow.LayoutParams.MATCH_PARENT));
                    tvItemName0.setText(contactList.get(i).get(TAG_NAME));
                    tvItemName1.setText(contactList.get(i).get(TAG_EMAIL));
                    tvItemName2.setText(contactList.get(i).get(TAG_CONTACTS));
                    itemsName.addView(tvItemName0);
                    itemsName.addView(tvItemName1);
                    itemsName.addView(tvItemName2);
                    tl.addView(itemsName, new TableLayout.LayoutParams(
                            TableLayout.LayoutParams.WRAP_CONTENT,
                            TableLayout.LayoutParams.MATCH_PARENT));

                }
            }

答案 1 :(得分:1)

在postExcecute方法中使用这些行。

 itemsName = new TableRow(DailyMonthlyPerActivity.this);
                tvItemName0 = new TextView(DailyMonthlyPerActivity.this);
                tvItemName1 = new TextView(DailyMonthlyPerActivity.this);
                tvItemName2 = new TextView(DailyMonthlyPerActivity.this);

答案 2 :(得分:0)

在postExecute()方法中尝试此操作。

protected void onPostExecute(Void result) {
                super.onPostExecute(result);
                // Dismiss the progress dialog
                if (pDialog.isShowing())
                    pDialog.dismiss();
                for (int i = 0; i < contactList.size(); i++) {
                    itemsName.setLayoutParams(new TableRow.LayoutParams(
                            TableRow.LayoutParams.WRAP_CONTENT,
                            TableRow.LayoutParams.MATCH_PARENT));
                    tvItemName0.setText(contactList.get(i).get(TAG_NAME));
                    tvItemName1.setText(contactList.get(i).get(TAG_EMAIL));
                    tvItemName2.setText(contactList.get(i).get(TAG_CONTACTS));
                    itemsName.addView(tvItemName0);
                    itemsName.addView(tvItemName1);
                    itemsName.addView(tvItemName2);
                    tl.addView(itemsName, new TableLayout.LayoutParams(
                            TableLayout.LayoutParams.WRAP_CONTENT,
                            TableLayout.LayoutParams.MATCH_PARENT));

                }
            }