码迷,mamicode.com
首页 > 其他好文 > 详细

XListView

时间:2015-11-30 08:29:32      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:



1 <string name="xlistview_header_hint_normal">下拉刷新</string>
2     <string name="xlistview_header_hint_ready">松开刷新数据</string>
3     <string name="xlistview_header_hint_loading">正在加载...</string>
4     <string name="xlistview_header_last_time">上次更新时间:</string>
5     <string name="xlistview_footer_hint_normal">查看更多</string>
6     <string name="xlistview_footer_hint_ready">松开载入更多</string>

 

 1  <RelativeLayout
 2             android:id="@+id/view_pager_banner_s"
 3             android:layout_width="match_parent"
 4             android:layout_height="220dp" >
 5 
 6             <cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager
 7                 android:id="@+id/view_pager_banner"
 8                 android:layout_width="match_parent"
 9                 android:layout_height="220dp" />
10 
11             <TextView
12                 android:id="@+id/position_get"
13                 android:layout_width="wrap_content"
14                 android:layout_height="wrap_content"
15                 android:layout_alignParentBottom="true"
16                 android:layout_marginBottom="5dp"
17                 android:layout_marginLeft="10dp"
18                 android:textColor="@android:color/white"
19                 android:textSize="18sp" />
20 
21             <LinearLayout
22                 android:layout_width="wrap_content"
23                 android:layout_height="wrap_content"
24                 android:layout_alignParentBottom="true"
25                 android:layout_alignParentRight="true"
26                 android:layout_marginBottom="5dp"
27                 android:layout_marginRight="10dp"
28                 android:orientation="horizontal" >
29 
30                 <ImageView
31                     android:id="@+id/seachposition_one"
32                     android:layout_width="wrap_content"
33                     android:layout_height="wrap_content"
34                     android:layout_marginRight="10dp"
35                     android:background="@drawable/im_input_phiz_page_indicator_sel" />
36 
37                 <ImageView
38                     android:id="@+id/seachposition_two"
39                     android:layout_width="wrap_content"
40                     android:layout_height="wrap_content"
41                     android:layout_marginRight="10dp"
42                     android:background="@drawable/im_input_phiz_page_indicator_nor" />
43 
44                 <ImageView
45                     android:id="@+id/seachposition_three"
46                     android:layout_width="wrap_content"
47                     android:layout_height="wrap_content"
48                     android:layout_marginRight="10dp"
49                     android:background="@drawable/im_input_phiz_page_indicator_nor" />
50             </LinearLayout>
51         </RelativeLayout>

 

  1 package com.example.fragment;
  2 
  3 import java.io.BufferedReader;
  4 import java.io.IOException;
  5 import java.io.InputStream;
  6 import java.io.InputStreamReader;
  7 import java.util.ArrayList;
  8 import java.util.List;
  9 
 10 import org.apache.http.HttpResponse;
 11 import org.apache.http.HttpStatus;
 12 import org.apache.http.client.ClientProtocolException;
 13 import org.apache.http.client.HttpClient;
 14 import org.apache.http.client.methods.HttpGet;
 15 import org.apache.http.impl.client.DefaultHttpClient;
 16 
 17 import android.content.Intent;
 18 import android.os.Bundle;
 19 import android.os.Handler;
 20 import android.os.Message;
 21 import android.support.v4.app.Fragment;
 22 import android.support.v4.view.PagerAdapter;
 23 import android.support.v4.view.ViewPager.OnPageChangeListener;
 24 import android.util.Log;
 25 import android.view.LayoutInflater;
 26 import android.view.View;
 27 import android.view.View.OnClickListener;
 28 import android.view.ViewGroup;
 29 import android.widget.AdapterView;
 30 import android.widget.AdapterView.OnItemClickListener;
 31 import android.widget.Button;
 32 import android.widget.ImageView;
 33 import android.widget.RelativeLayout;
 34 import android.widget.TextView;
 35 import android.widget.Toast;
 36 
 37 import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager;
 38 
 39 import com.example.adapter.CompanyAdapter;
 40 import com.example.model.Job;
 41 import com.example.model.Tital;
 42 import com.example.recruit_part.CityActivity;
 43 import com.example.recruit_part.DetailsActivity;
 44 import com.example.recruit_part.HomeActivity;
 45 import com.example.recruit_part.ProfessionActivity;
 46 import com.example.recruit_part.R;
 47 import com.example.recruit_part.TradeActivity;
 48 import com.example.view.ClearEditText;
 49 import com.example.xlistview.XListView;
 50 import com.example.xlistview.XListView.IXListViewListener;
 51 import com.google.gson.Gson;
 52 import com.lidroid.xutils.DbUtils;
 53 import com.lidroid.xutils.db.sqlite.Selector;
 54 import com.lidroid.xutils.exception.DbException;
 55 
 56 /**
 57  * 创建工作职位搜索界面
 58  * 
 59  * @author Administrator
 60  * 
 61  */
 62 @SuppressWarnings("all")
 63 public class PositionFragment extends Fragment implements IXListViewListener {
 64     int start = 0;
 65     int loads = 10;
 66     private XListView xListView;
 67     private View v;
 68     // private TextView seach_address;// 地点
 69     // private TextView seach_industry;// 行业类别
 70     // private TextView seach_position;// 职位类别
 71     // private Button seach_all_message;// 精确搜索
 72     private Button sure_seach;// 搜索
 73     private ImageView seach_img1;
 74     private ImageView seach_img2;
 75     private ImageView seach_img3;
 76     private ImageView seachposition_one;
 77     private ImageView seachposition_two;
 78     private ImageView seachposition_three;
 79     private ClearEditText position_seach;
 80     private CompanyAdapter adapter;
 81     TextView position_get;
 82 
 83     private List<Job> jobList = new ArrayList<Job>();
 84     private List<Job> list = new ArrayList<Job>();
 85     Handler handler = new Handler() {
 86 
 87         public void handleMessage(android.os.Message msg) {
 88             if (msg.what == 5 || msg.what == 4 ) {
 89                 getLoad();
 90                 adapter = new CompanyAdapter(getActivity(), list);
 91                 xListView.setAdapter(adapter);
 92                 seach_xlistview_hide.setVisibility(View.GONE);
 93                 xListView.setOnItemClickListener(new OnItemClickListener() {
 94 
 95                     @Override
 96                     public void onItemClick(AdapterView<?> arg0, View arg1,
 97                             int arg2, long arg3) {
 98                         // TODO Auto-generated method stub
 99                         Intent intent = new Intent(getActivity(),
100                                 DetailsActivity.class);
101                         intent.putExtra("pos", list.get(arg2 - 1));
102                         startActivity(intent);
103                     }
104                 });
105             }
106         };
107     };
108 
109     @Override
110     public View onCreateView(LayoutInflater inflater, ViewGroup container,
111             Bundle savedInstanceState) {
112         v = inflater.inflate(R.layout.positionfragment, null);
113         homeact = (HomeActivity) getActivity();
114         HomeActivity.top_center.setText("热门职位");
115         initview();
116         return v;
117     }
118 
119     /**
120      * 初始化控件
121      */
122     private void initview() {
123         sure_seach = (Button) v.findViewById(R.id.sure_seach);
124         position_get = (TextView) v.findViewById(R.id.position_get);
125         sure_seach = (Button) v.findViewById(R.id.sure_seach);
126         seachposition_one = (ImageView) v.findViewById(R.id.seachposition_one);
127         seachposition_two = (ImageView) v.findViewById(R.id.seachposition_two);
128         seachposition_three = (ImageView) v
129                 .findViewById(R.id.seachposition_three);
130         position_seach = (ClearEditText) v.findViewById(R.id.position_seach);
131         xListView = (XListView) v.findViewById(R.id.seach_xlistview);
132         seach_xlistview_hide = (RelativeLayout) v
133                 .findViewById(R.id.seach_xlistview_hide);
134         view_pager_banner = (AutoScrollViewPager) v
135                 .findViewById(R.id.view_pager_banner);
136         view_pager_banner.setOnPageChangeListener(pagelistener);
137         xListView.setTextFilterEnabled(true);
138         getimageShow();
139         view_pager_banner.setAdapter(pageadp);
140         view_pager_banner.startAutoScroll(4000);
141         view_pager_banner.setCycle(true);
142         view_pager_banner.setInterval(4000);
143         view_pager_banner.setStopScrollWhenTouch(true);
144         view_pager_banner.setDirection(AutoScrollViewPager.RIGHT);
145         view_pager_banner
146                 .setSlideBorderMode(AutoScrollViewPager.SLIDE_BORDER_MODE_CYCLE);
147 
148         xListView.setPullLoadEnable(true);
149         xListView.setPullRefreshEnable(true);
150         xListView.setXListViewListener(this);
151         sure_seach.setOnClickListener(l);
152         seachposition_one.setOnClickListener(l);
153         seachposition_two.setOnClickListener(l);
154         seachposition_three.setOnClickListener(l);
155         // 创建数据库
156         dbUtils = DbUtils.create(getActivity(), "job.db");
157         seach_xlistview_hide.setVisibility(View.VISIBLE);
158 // 解析数据
159         new Thread() {
160 
161             public void run() {
162                 HttpClient client = new DefaultHttpClient();
163                 HttpGet get = new HttpGet(
164                         "http://group4.bwie.com.cn/index.php?r=company/search&stage=all&job=all");
165                 try {
166                     HttpResponse response = client.execute(get);
167                     if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
168                         InputStream is = response.getEntity().getContent();
169                         BufferedReader br = new BufferedReader(
170                                 new InputStreamReader(is));
171                         StringBuffer sb = new StringBuffer();
172                         String str = "";
173                         while ((str = br.readLine()) != null) {
174                             sb.append(str);
175                         }
176                         Gson gson = new Gson();
177 System.out.println("职位网络查询:" + sb.toString());
178                         Tital companyBean = gson.fromJson(sb.toString(),
179                                 Tital.class);
180                         jobList = companyBean.getData().getContent()
181                                 .getRel_job();
182 
183                         for (int i = 0; i < jobList.size(); i++) {
184                             Job job = jobList.get(i);
185                             dbUtils.save(job);
186                         }
187                         Message message = handler.obtainMessage(5, jobList);
188                         handler.sendMessage(message);
189                         is.close();
190                         dbUtils.close();
191                         client.getConnectionManager().shutdown();
192                     }
193                 } catch (ClientProtocolException e) {
194                     e.printStackTrace();
195                 } catch (IOException e) {
196                     e.printStackTrace();
197                 } catch (DbException e) {
198                     // TODO Auto-generated catch block
199                     e.printStackTrace();
200                 }
201             }
202         }.start();
203 
204         getdbList();
205     }
206 
207     private void getimageShow() {
208         imagList = new ArrayList<View>();
209         View imagV = LayoutInflater.from(getActivity()).inflate(
210                 R.layout.imagelist, null);
211         ImageView imag = (ImageView) imagV.findViewById(R.id.page_imag);
212         View imagV1 = LayoutInflater.from(getActivity()).inflate(
213                 R.layout.imagelist1, null);
214         ImageView imag1 = (ImageView) imagV.findViewById(R.id.page_imag1);
215         View imagV2 = LayoutInflater.from(getActivity()).inflate(
216                 R.layout.imagelist2, null);
217         ImageView imag2 = (ImageView) imagV.findViewById(R.id.page_imag2);
218         imagList.add(imagV);
219         imagList.add(imagV1);
220         imagList.add(imagV2);
221     }
222 
223     // 加上自动轮播
224     PagerAdapter pageadp = new PagerAdapter() {
225 
226         @Override
227         public boolean isViewFromObject(View arg0, Object arg1) {
228             // TODO Auto-generated method stub
229             return arg0 == arg1;
230         }
231 
232         @Override
233         public int getCount() {
234             // TODO Auto-generated method stub
235             return imagList.size();
236         }
237 
238         @Override
239         public void destroyItem(ViewGroup container, int position, Object object) {
240             // super.destroyItem(container, position, object);
241             container.removeView(imagList.get(position));
242         }
243 
244         @Override
245         public Object instantiateItem(ViewGroup container, int position) {
246             // TODO Auto-generated method stub
247             View image = imagList.get(position);
248             container.addView(image);
249             return image;
250         }
251 
252     };
253 
254     // 获取数据库查询信息
255     private void getdbList() {
256         // TODO Auto-generated method stub
257         new Thread() {
258             public void run() {
259                 try {
260                     jobList = (ArrayList<Job>) dbUtils.findAll(Job.class);
261                     Message message = handler.obtainMessage(4, jobList);
262                     handler.sendMessage(message);
263                     stop();
264                 } catch (DbException e) {
265                     // TODO Auto-generated catch block
266                     e.printStackTrace();
267                 }
268             };
269         }.start();
270 
271     }
272 
273     OnClickListener l = new OnClickListener() {
274 
275         @Override
276         public void onClick(View v) {
277             switch (v.getId()) {
278             case R.id.seachposition_one:
279                 view_pager_banner.setCurrentItem(0);
280                 break;
281             case R.id.seachposition_two:
282                 view_pager_banner.setCurrentItem(1);
283                 break;
284             case R.id.seachposition_three:
285                 view_pager_banner.setCurrentItem(2);
286                 break;
287             case R.id.sure_seach:
288                 try {
289 
290                     String name = position_seach.getText().toString();
291                     List<Job> findList = dbUtils.findAll(Selector.from(
292                             Job.class).where("rj_name", "LIKE",
293                             "%" + name + "%"));
294                     if (null != findList) {
295                         Toast.makeText(getActivity(),
296                                 "未能查询到关于" + name + "的相关职位!", 0).show();
297                     } else {
298                         Toast.makeText(getActivity(),
299                                 "关于" + name + "的相关职位查询成功!", 0).show();
300                     }
301                     adapter = new CompanyAdapter(getActivity(), findList);
302                     xListView.setAdapter(adapter);
303                     xListView.setOnItemClickListener(new OnItemClickListener() {
304 
305                         @Override
306                         public void onItemClick(AdapterView<?> arg0, View arg1,
307                                 int arg2, long arg3) {
308                             // TODO Auto-generated method stub
309                             Intent intent = new Intent(getActivity(),
310                                     DetailsActivity.class);
311                             intent.putExtra("pos", list.get(arg2 - 1));
312                             startActivity(intent);
313                         }
314                     });
315                 } catch (DbException e) {
316                     // TODO Auto-generated catch block
317                     e.printStackTrace();
318                 }
319 
320                 break;
321             }
322         }
323     };
324     private HomeActivity homeact;
325     private DbUtils dbUtils;
326     private AutoScrollViewPager view_pager_banner;
327     private List<View> imagList;
328 
329     /**
330      * 重置刷新集合
331      */
332     private void getLoad() {
333         if (null != list && null != jobList) {
334             for (start = start; start < loads; start++) {
335                 list.add(jobList.get(start));
336             }
337             loads += 10;
338             if (loads > jobList.size()) {
339                 loads = jobList.size();
340             }
341         }
342     }
343 
344     public void onLoad() {
345         xListView.stopRefresh();
346         xListView.stopLoadMore();
347         xListView.setRefreshTime("正在刷新职位");
348     }
349 
350     @Override
351     public void onRefresh() {
352         handler.postDelayed(new Runnable() {
353 
354             @Override
355             public void run() {
356                 getLoad();
357                 adapter = new CompanyAdapter(getActivity(), list);
358                 xListView.setAdapter(adapter);
359                 onLoad();
360                 Toast.makeText(getActivity(), "当前已是最新的职位信息", 0).show();
361             }
362         }, 2000);
363     }
364 
365     @Override
366     public void onLoadMore() {
367         handler.postDelayed(new Runnable() {
368 
369             @Override
370             public void run() {
371                 getLoad();
372                 adapter.notifyDataSetChanged();
373                 onLoad();
374             }
375         }, 2000);
376     }
377 
378     OnPageChangeListener pagelistener = new OnPageChangeListener() {
379 
380         @Override
381         public void onPageSelected(int arg0) {
382             // TODO Auto-generated method stub
383             hideimage();
384             switch (arg0) {
385             case 0:
386                 position_get.setText("java工程师");
387                 seachposition_one
388                         .setBackgroundResource(R.drawable.im_input_phiz_page_indicator_sel);
389                 break;
390             case 1:
391                 position_get.setText("安卓工程师");
392                 seachposition_two
393                         .setBackgroundResource(R.drawable.im_input_phiz_page_indicator_sel);
394                 break;
395             case 2:
396                 position_get.setText("html工程师");
397                 seachposition_three
398                         .setBackgroundResource(R.drawable.im_input_phiz_page_indicator_sel);
399                 break;
400 
401             default:
402                 break;
403             }
404         }
405 
406         @Override
407         public void onPageScrolled(int arg0, float arg1, int arg2) {
408             // TODO Auto-generated method stub
409         }
410 
411         @Override
412         public void onPageScrollStateChanged(int arg0) {
413             // TODO Auto-generated method stub
414         }
415     };
416     private RelativeLayout seach_xlistview_hide;
417 
418     // 隐藏所有image
419     protected void hideimage() {
420         // TODO Auto-generated method stub
421         seachposition_one
422                 .setBackgroundResource(R.drawable.im_input_phiz_page_indicator_nor);
423         seachposition_two
424                 .setBackgroundResource(R.drawable.im_input_phiz_page_indicator_nor);
425         seachposition_three
426                 .setBackgroundResource(R.drawable.im_input_phiz_page_indicator_nor);
427     }
428 
429     @Override
430     public void onDestroy() {
431         // TODO Auto-generated method stub
432         super.onDestroy();
433         view_pager_banner.stopAutoScroll();
434     }
435 }

 

XListView

标签:

原文地址:http://www.cnblogs.com/zxwisfdlkjglkf/p/5006198.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!