SeekBar
来源:互联网 发布:软件开发 外包 杭州 编辑:程序博客网 时间:2024/05/01 02:28
//MainActivity
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener, SeekBar.OnSeekBarChangeListener { private String url="http://www.quanmin.tv/json/categories/lol/list.json"; private XListView xlvx; private MyAdapter ma; private int nofify=0; private ViewPager vp; private MyPagerAdapter map; private int pro=0; private SeekBar sb; private List<Mybean> mblist=new ArrayList<>(); private List<Mybeanone> molist=new ArrayList<>(); private List<Mybean> newlist; //定义Handler,用于轮播使用 private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); int currentItem = vp.getCurrentItem(); currentItem++; vp.setCurrentItem(currentItem); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件 initView(); //SeekBar的监听方法 initproger(); //AsyncTask异步 new MyAsyncTask().execute(url); //定时操作 initTime(); } private void initproger() { sb.setOnSeekBarChangeListener(this); } private void initTime() { Timer timer=new Timer(); TimerTask task=new TimerTask() { @Override public void run() { handler.sendEmptyMessage(0); } }; timer.schedule(task,2000,2000); } /** * 获取控件的类 * 用于获取工程需要的控件 */ private void initView() { View view=View.inflate(MainActivity.this,R.layout.itempage,null); View vieww=View.inflate(MainActivity.this,R.layout.itemtou,null); vp=view.findViewById(R.id.vp_page); xlvx= (XListView) findViewById(R.id.lv_xlv); sb= (SeekBar) findViewById(R.id.mprogress); sb.setMax(100); xlvx.addHeaderView(view); xlvx.addHeaderView(vieww); xlvx.setXListViewListener(this); xlvx.setPullLoadEnable(true); } @Override public void onProgressChanged(SeekBar seekBar, final int mmm, boolean b) { sb.setProgress(mmm); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } /** * AsyncTask异步类 * 用于实现网络请求数据以及XlistView的展示操作 */ class MyAsyncTask extends AsyncTask<String,Integer,String>{ @Override protected String doInBackground(String... strings) { String result=null; try { URL murl=new URL(strings[0]); HttpURLConnection connection= (HttpURLConnection) murl.openConnection(); connection.connect(); int zg=connection.getContentLength(); int mk=0; if(200==connection.getResponseCode()){ InputStream ins = connection.getInputStream(); int length=0; byte[] arr=new byte[1024]; ByteArrayOutputStream baos = new ByteArrayOutputStream(); while((length=ins.read(arr))!=-1){ baos.write(arr,0,length); int kkk=length; mk=(kkk/zg)*100; publishProgress(mk); } result=baos.toString(); return result; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); pro=values[0]; } @Override protected void onPostExecute(String s) { sb.setVisibility(View.GONE); super.onPostExecute(s); System.out.println("网络请求的字段____"+s); JSONjie(s); } } //解析操作 private void JSONjie(String s) { try { JSONObject obj = new JSONObject(s); JSONArray data = obj.getJSONArray("data"); if(data!=null&& data.length()>0){ for (int i = 0; i <data.length() ; i++) { JSONObject js = data.getJSONObject(i); Mybean mb=new Mybean(); mb.nick=js.getString("nick"); mb.title=js.getString("title"); mb.shuffimg=js.optString("app_shuffling_image"); mblist.add(mb); } } if(mblist!=null){ for (int i = 0; i <4; i++) { Mybeanone mo=new Mybeanone(); mo.pic=mblist.get(i).shuffimg; molist.add(mo); } System.out.println("_______"+molist.size()); map=new MyPagerAdapter(); vp.setAdapter(map); setDate(); } } catch (Exception e) { e.printStackTrace(); } } private void setDate() { newlist=new ArrayList<>(); for (int i = 0; i <nofify+10; i++) { newlist.add(mblist.get(i)); } nofify+=10; ma=new MyAdapter(MainActivity.this,newlist); xlvx.setAdapter(ma); xlvx.stopLoadMore(); xlvx.stopRefresh(); } //刷新数据 @Override public void onRefresh() { new MyAsyncTask().execute(url); Toast.makeText(MainActivity.this,"刷新完毕",Toast.LENGTH_SHORT).show(); xlvx.stopRefresh(); } //加载数据 @Override public void onLoadMore() { if(nofify+10<=mblist.size()){ for (int i =nofify; i <nofify+10; i++) { newlist.add(mblist.get(i)); Toast.makeText(MainActivity.this,"刷新完毕",Toast.LENGTH_SHORT).show(); } nofify++; }else{ Toast.makeText(MainActivity.this,"已没有更多",Toast.LENGTH_SHORT).show(); } xlvx.stopLoadMore(); } //ViewPager用到的适配器 class MyPagerAdapter extends PagerAdapter{ @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { View view=View.inflate(MainActivity.this,R.layout.imtepaimg,null); ImageView paimg=view.findViewById(R.id.iv_imgpa); ImageLoader.getInstance().displayImage(molist.get(position%molist.size()).pic,paimg); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View)object); } }}//Myapp
public class MyApp extends Application{ @Override public void onCreate() { super.onCreate(); DisplayImageOptions options=new DisplayImageOptions.Builder().build(); ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder(this) .defaultDisplayImageOptions(options) .build(); ImageLoader.getInstance().init(config); }}//Adapter
public class MyAdapter extends BaseAdapter{ private Context context; private List<Mybean> list; private final int typea=0; private final int typeb=1; public MyAdapter(Context context, List<Mybean> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public int getItemViewType(int position) { if(position%2==0){ return typea; }else{ return typeb; } }//定义多种布局 @Override public int getViewTypeCount() { return 2; } /** * getView类 * 对条目进行判断,实现多条目展示 */ @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); ViewHolder holder=null; ViewHolder2 holder2=null; if(view==null){ switch (type){ case typea: holder=new ViewHolder(); view=View.inflate(context, R.layout.item,null); holder.mnick=view.findViewById(R.id.tv_nick); holder.mtitle=view.findViewById(R.id.tv_title); holder.mivshu=view.findViewById(R.id.iv_imgx); view.setTag(holder); break; case typeb: holder2=new ViewHolder2(); view=View.inflate(context, R.layout.itemtwo,null); holder2.mnick2=view.findViewById(R.id.tv_nickt); holder2.mtitle2=view.findViewById(R.id.tv_titlet); holder2.mivshu2=view.findViewById(R.id.ivvv); view.setTag(holder2); break; } } else{ switch (type){ case typea: holder= (ViewHolder) view.getTag(); break; case typeb: holder2= (ViewHolder2) view.getTag(); break; } } switch (type){ case typea: holder.mnick.setText(list.get(i).nick); holder.mtitle.setText(list.get(i).title); ImageLoader.getInstance().displayImage(list.get(i).shuffimg,holder.mivshu); break; case typeb: holder2.mnick2.setText(list.get(i).nick); holder2.mtitle2.setText(list.get(i).title); ImageLoader.getInstance().displayImage(list.get(i).shuffimg,holder2.mivshu2); break; } return view; } /** * 优化用到的类 * 用于优化使用 */ class ViewHolder { public TextView mnick; public TextView mtitle; public ImageView mivshu; } class ViewHolder2 { public TextView mnick2; public TextView mtitle2; public ImageView mivshu2; }}//Bean
public class Mybean { public String nick; public String shuffimg; public String title;}
public class Mybeanone { public String pic;}
阅读全文
0 0
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- seekbar
- SeekBar
- SeekBar
- seekbar
- 1-3 求1~100中能被6整除的所有整数的和
- 程序员成长历程的四个阶段
- 文字溢出省略号显示
- 欢迎使用CSDN-markdown编辑器
- c/c++常考的面试题
- SeekBar
- 树莓派设备端口号绑定
- AVL树的插入与删除
- navicat for mysql 10.0.11(附密钥)
- Android第二天
- 2-1 求整数均值
- 洛谷p1280尼克的方案
- 留白篇
- 杭电-6180