zoukankan      html  css  js  c++  java
  • Android开发----Listview刷新的相关代码

    Mainactity

    public class MainActivity extends ListActivity {
        static final int MENU_MANUAL_REFRESH = 0;
        static final int MENU_DISABLE_SCROLL = 1;
        static final int MENU_SET_MODE = 2;
        static final int MENU_DEMO = 3;
        int index=1;
        
        private PullToRefreshListView mPullRefreshListView;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);//1
            new GetDataTask().execute("http://api.expoon.com/AppNews/getNewsList/type/1/p/"+index);    
            // Set a listener to be invoked when the list should be refreshed.下拉刷新处理
            mPullRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() {        //2
                @Override
                public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                    String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(),
                            DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);

                    // Update the LastUpdatedLabel
                    refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);//3.刷新界面处理代理,显示新的时间

                    // Do work to refresh the list here.
                    
                    new GetDataTask().execute("http://api.expoon.com/AppNews/getNewsList/type/1/p/"+index);                                    //4.执行自定义AsyncTask,进行数据的请求刷新
                }
            });
            
            // Add an end-of-list listener                                        //5.设置上拉加载处理
            mPullRefreshListView.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {
                
                @Override
                public void onLastItemVisible() {
                    
                    new GetDataTask().execute("http://api.expoon.com/AppNews/getNewsList/type/1/p/"+index);    
                    Toast.makeText(MainActivity.this, "正在加载", 1).show();
                }
            });
            
            
        }


        private class GetDataTask extends AsyncTask<String, Integer, String> {

            @Override
            protected String doInBackground(String... params) {
                // Simulates a background job.
                String json = null;
                try {
                    
                    Thread.sleep(4000);
                     HttpClient httpClient=new DefaultHttpClient();
                       HttpGet httpGet=new HttpGet(params[0]);
                       try {
                        HttpResponse execute = httpClient.execute(httpGet);
                        int statusCode = execute.getStatusLine().getStatusCode();
                        if(statusCode==200){
                            HttpEntity entity = execute.getEntity();
                            json = EntityUtils.toString(entity);
                            Log.i("aaa",json);
                        }
                    } catch (ClientProtocolException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    
                } catch (InterruptedException e) {}
                
              
                return json;
            }

            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);
                Gson gson=new Gson();
                final List_news fromJson = gson.fromJson(result,List_news.class);
                Log.i("bbb",fromJson.getData().toString());
                //mListItems.addFirst("Added after refresh...");
                MyAdapter adapter=new MyAdapter(fromJson.getData(), getApplicationContext());
                ListView actualListView = mPullRefreshListView.getRefreshableView();
                actualListView.setAdapter(adapter);
                
                actualListView.setOnItemClickListener(new OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1,
                            int arg2, long arg3) {
                        // TODO Auto-generated method stub
                        Intent intent=new Intent(MainActivity.this,DetailsActivity.class);
                        intent.putExtra("list", fromJson.getData().get(arg2));
                        startActivity(intent);
                    }
                });
                adapter.notifyDataSetChanged();
                index= index+1;
                // Call onRefreshComplete when the list has been refreshed.
                mPullRefreshListView.onRefreshComplete();
            }
        }

    }

    DetailsActivity

    public class DetailsActivity extends Activity {
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.show_detail);
            Intent intent = getIntent();
            News news=(News) intent.getSerializableExtra("list");
            ImageView imageView=(ImageView) findViewById(R.id.image_show);
            TextView textView=(TextView) findViewById(R.id.text_show);
            textView.setText(news.getNews_title());
            BitmapUtils bitmapUtils=new BitmapUtils(getApplicationContext());
            bitmapUtils.display(imageView, news.getPic_url());
        }

    }

    Baseadapter

    public class MyAdapter extends BaseAdapter {
        List<News> list;
        Context context;
        public MyAdapter(List<News> list, Context context) {
            super();
            this.list = list;
            this.context = context;
        }
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }



        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return list.get(position);
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            ViewHolder viewHolder;
            if(convertView==null){
                viewHolder=new ViewHolder();
                convertView=LayoutInflater.from(context).inflate(R.layout.list_view, null);
                viewHolder.textView=(TextView) convertView.findViewById(R.id.text);
                viewHolder.imageView=(ImageView) convertView.findViewById(R.id.image);
                convertView.setTag(viewHolder);
            }else{
                viewHolder=(ViewHolder) convertView.getTag();
            }
              viewHolder.textView.setText(list.get(position).getNews_title());
              BitmapUtils bitmapUtils=new BitmapUtils(context);
              bitmapUtils.display(viewHolder.imageView,list.get(position).getPic_url());
            return convertView;
        }
        class ViewHolder{
            TextView textView;
            ImageView imageView;
        }
    }

    分装类

    public class List_news {
        List<News> data;

        public List<News> getData() {
            return data;
        }

        public void setData(List<News> data) {
            this.data = data;
        }
        

    }

    布局页面main

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.bwie.sx.MainActivity" >
          <com.handmark.pulltorefresh.library.PullToRefreshListView
            android:id="@+id/pull_refresh_list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:cacheColorHint="#00000000"
            android:divider="#19000000"
            android:dividerHeight="4dp"
            android:fadingEdge="none"
            android:fastScrollEnabled="false"
            android:footerDividersEnabled="false"
            android:headerDividersEnabled="false"
            android:smoothScrollbar="true" />

     
    </RelativeLayout>

    public class News implements Serializable{
        String news_title;
        String pic_url;
        public String getNews_title() {
            return news_title;
        }
        public void setNews_title(String news_title) {
            this.news_title = news_title;
        }
        public String getPic_url() {
            return pic_url;
        }
        public void setPic_url(String pic_url) {
            this.pic_url = pic_url;
        }

    }

  • 相关阅读:
    习题1
    实验3阅读下面程序、分析说明运行结果,并上机验证。
    实验2利用循环计算n个圆柱体体积。
    实验1编写求圆面积的程序,要求当输入的半径r<=0时,提示输入错误,要求r为浮点型,r的数值是动态的由键盘输入;
    例7-12
    例 7-11
    例7-9
    例7-8
    例7-7
    例7-6
  • 原文地址:https://www.cnblogs.com/bokeyuan007/p/5327711.html
Copyright © 2011-2022 走看看