0

我正在做安卓项目。在我的应用程序中,我从 php webservice 获取数据。我将数据添加到不同的数组列表并将它们设置为 listadapter。但我的问题是在列表中显示数据需要很长时间。因此,现在我想显示前 10 个项目,并希望在屏幕底部保留一个加载更多按钮。单击加载更多按钮后,需要显示接下来的 10 个项目。请任何人都可以在这方面帮助我。我非常感谢您的帮助。先感谢您。

代码:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main1);

        Longop op = new Longop();
            op.execute("");
    }


public void loadSomeDummyData() {

        try {

            response = CustomHttpClient
                    .executeHttpPost(
                            "http://website.com/folder/testfile.php",
                            postParameters);

            for (int i = 1; i < arr1.length - 1; i++) {

                id.add(new String(arr[0]));
                name.add(new String(arr[1]));
                dateofbirth.add(new String(arr[2]));
                status.add(new String(arr[3]));

            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }


    private class Longop extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {

            loadSomeDummyData();
            return "Executed";
        }

        @Override
        protected void onPostExecute(String result) {
            mdialog.dismiss();

            myListView.setAdapter(new MyArrayAdapter(Sample.this,
                        R.layout.list, id, name, dateofbirth,
                        status));
            }

        @Override
        protected void onPreExecute() {
            mdialog = ProgressDialog.show(Sample.this, "Please wait...",
                    "Retrieving data ...", true);
        }

        @Override
        protected void onProgressUpdate(Void... values) {
        }
    }



    private class MyArrayAdapter extends ArrayAdapter<String> {

        // this list hold the data that we will see in listview
        private List<String> myData = new ArrayList<String>();
        private List<String> myData1 = new ArrayList<String>();
        private List<String> myData2 = new ArrayList<String>();
        private List<String> myData3 = new ArrayList<String>();


        public MyArrayAdapter(Context context, int textViewResourceId,
                List<String> objects, List<String> objects1,
                List<String> objects2, List<String> objects3) {
            super(context, textViewResourceId, objects);
            // TODO Auto-generated constructor stub

            context = getContext();

            myData = objects;
            myData1 = objects1;
            myData2 = objects2;
            myData3 = objects3;
            }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub

            View v = convertView;

            if (v == null) {

                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = inflater.inflate(R.layout.list, null);
                // Log.d(EKSI, "Getting the inflater from the system context");
            }

            String sid = myData.get(position);
            String sname = myData1.get(position);
            String dob = myData2.get(position);
            String sstatus = myData3.get(position);


                TextView entryTextView = (TextView) v.findViewById(R.id.id1);

                entryTextView.setText(sid);


                TextView entryTextView1 = (TextView) v
                        .findViewById(R.id.id2);
                entryTextView1.setText(sname);


                TextView entryTextView2 = (TextView) v
                        .findViewById(R.id.id3);
                entryTextView2.setText(dob);


                TextView entryTextView3 = (TextView) v
                        .findViewById(R.id.id4);
                entryTextView3.setText(sstatus);

            return v;
        }
    }
4

3 回答 3

0

我实现了这个功能,而不是可以做到这一点的基础 ListView;

  • 自定义加载视图,覆盖onDraw方法

  • 在 LinearLayout 视图的末尾添加加载视图。当显示加载视图时,它应该调用一些方法通过 HTTP 从服务器获取数据。

于 2013-06-28T03:19:41.950 回答
0

你只需要膨胀一个xml

  lstView.addFooterView(R.layout.footer);

并处理位于页脚中的按钮的 onclick

于 2013-06-28T04:40:57.500 回答
0

你也可以使用这个库 https://github.com/chrisbanes/Android-PullToRefresh

于 2013-06-28T01:59:53.277 回答