您的位置:首页 > 理论基础 > 计算机网络

viewpager+handler获取网络数据无限自动轮播,xlistview添加头部viewpager,点击条目跳转百度

2018-01-16 19:36 645 查看
主界面

package com.bwie.week3_test01;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;

import com.bwie.Utils.Utils;
import com.bwie.adapter.MyPlvAdapter;
import com.bwie.bean.Bean;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity  {

private ViewPager vp;
private List<String> list;
private PullToRefreshListView plv;
private ListView lv;
private List<Bean.DataBean> data;

String url = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=";

Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0) {
int currentItem = vp.getCurrentItem();
vp.setCurrentItem(currentItem+1);
handler.sendEmptyMessageDelayed(0, 2000);
}
}
};
private View header;
private int page=0;
private MyPlvAdapter plvAdapter;
private MyAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

header = View.inflate(this, R.layout.header, null);
vp=header.findViewById(R.id.vp);
initView();
plv = findViewById(R.id.plv);
ListView listView = plv.getRefreshableView();
listView.addHeaderView(header);

plv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
startActivity(intent);
finish();
}
});

getpage();
getNetData();

plv.setMode(PullToRefreshBase.Mode.BOTH);
plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
data.clear();
getNetData();
}

@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page++;
getNetData();
plvAdapter.notifyDataSetChanged();
}
});

}
private void getNetData() {
new AsyncTask<String,Integer,String>(){

@Override
protected String doInBackground(String... strings) {
String json = new Utils().getJson(url+page);
return json;
}

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
data = bean.getData();
plvAdapter = new MyPlvAdapter(MainActivity.this, data);
plv.setAdapter(plvAdapter);
plv.onRefreshComplete();
}
}.execute();
}

private void getpage() {
adapter = new MyAdapter();
vp.setAdapter(adapter);
vp.setCurrentItem(list.size()*1000);
handler.sendEmptyMessageDelayed(0, 2000);
}

private void initView() {

list=new ArrayList<>();

list.add("http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg");
list.add("http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg");
list.add("http://img.my.csdn.net/uploads/201309/01/1378037235_7476.jpg");
list.add("http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg ");
list.add("http://img.my.csdn.net/uploads/201309/01/1378037235_7476.jpg");
}

class MyAdapter extends PagerAdapter {

@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override

public Object instantiateItem(ViewGroup container, int position) {

ImageView iv=new ImageView(MainActivity.this);

iv.setScaleType(ImageView.ScaleType.FIT_XY);

ImageLoader.getInstance().displayImage(list.get(position%list.size()),iv);
container.addView(iv);
return iv;
}
}

}

百度界面
package com.bwie.week3_test01;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class Main2Activity extends AppCompatActivity {

private WebView wv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
wv.loadUrl("http://baidu.com");
wv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
return true;
}
});
}

private void initView() {
wv = (WebView) findViewById(R.id.wv);
}
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息