public class Fragment02 extends Fragment implements XListView.IXListViewListener{
String path ="http://www.meirixue.com/api.php?c=index&a=index";
private XListView xlv;
private LinearLayout ll;
private ViewPager vp;
private MyPagetAdapter pagetAdapter;
private MyBaseAdapter baseAdapter;
private List<Data_f2.DataBean.HotcategoryBean> hotcategory;
private List<Data_f2.DataBean.AdlistBean> adlist;
private List<Data_f2.DataBean.HotcategoryBean> hotcategory1= new ArrayList<>();
private List<Data_f2.DataBean.AdlistBean> adlist1= new ArrayList<>();
private List<ImageView> listiv;
String path ="http://www.meirixue.com/api.php?c=index&a=index";
private XListView xlv;
private LinearLayout ll;
private ViewPager vp;
private MyPagetAdapter pagetAdapter;
private MyBaseAdapter baseAdapter;
private List<Data_f2.DataBean.HotcategoryBean> hotcategory;
private List<Data_f2.DataBean.AdlistBean> adlist;
private List<Data_f2.DataBean.HotcategoryBean> hotcategory1= new ArrayList<>();
private List<Data_f2.DataBean.AdlistBean> adlist1= new ArrayList<>();
private List<ImageView> listiv;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//得到当前的下标
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
sendMsg();
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//得到当前的下标
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
sendMsg();
}
};
};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment02,null);
xlv = (XListView) view.findViewById(R.id.f2_xlv);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//SD卡读写
DisplayImageOptions options=new DisplayImageOptions.Builder()
.cacheOnDisk(true)
.cacheInMemory(true)
.build();
initData();
xlv.setXListViewListener(Fragment02.this);
xlv.setPullLoadEnable(true);
baseAdapter = new MyBaseAdapter();
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//SD卡读写
DisplayImageOptions options=new DisplayImageOptions.Builder()
.cacheOnDisk(true)
.cacheInMemory(true)
.build();
initData();
xlv.setXListViewListener(Fragment02.this);
xlv.setPullLoadEnable(true);
baseAdapter = new MyBaseAdapter();
//ViewPager的布局
View view=View.inflate(getActivity(),R.layout.f2_vp_item,null);
vp = (ViewPager) view.findViewById(R.id.f2_vp);
ll = (LinearLayout) view.findViewById(R.id.f2_ll);
//给XListview加载头布局
xlv.addHeaderView(view);
pagetAdapter = new MyPagetAdapter();
vp.setCurrentItem(100000);
//无限轮播
sendMsg();
//对ViewPager添加监听
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
View view=View.inflate(getActivity(),R.layout.f2_vp_item,null);
vp = (ViewPager) view.findViewById(R.id.f2_vp);
ll = (LinearLayout) view.findViewById(R.id.f2_ll);
//给XListview加载头布局
xlv.addHeaderView(view);
pagetAdapter = new MyPagetAdapter();
vp.setCurrentItem(100000);
//无限轮播
sendMsg();
//对ViewPager添加监听
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
public void onPageSelected(int position) {
for (int i =0;i<listiv.size();i++){
if(position%adlist1.size()==i){
listiv.get(position%adlist.size()).setImageResource(R.drawable.dot_focuable);
}else {
listiv.get(i).setImageResource(R.drawable.dot_normal);
}
}
if(position%adlist1.size()==i){
listiv.get(position%adlist.size()).setImageResource(R.drawable.dot_focuable);
}else {
listiv.get(i).setImageResource(R.drawable.dot_normal);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
public void onPageScrollStateChanged(int state) {
}
});
}
});
}
private void initData() {
new AsyncTask<String,Void,String>(){
new AsyncTask<String,Void,String>(){
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson =new Gson();
Data_f2 data_f2 = gson.fromJson(s, Data_f2.class);
//展示viewpager图片的集合
adlist = data_f2.getData().getAdlist();
//展示xlistview数据的集合
hotcategory = data_f2.getData().getHotcategory();
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson =new Gson();
Data_f2 data_f2 = gson.fromJson(s, Data_f2.class);
//展示viewpager图片的集合
adlist = data_f2.getData().getAdlist();
//展示xlistview数据的集合
hotcategory = data_f2.getData().getHotcategory();
adlist1.addAll(adlist);
hotcategory1.addAll(hotcategory);
hotcategory1.addAll(hotcategory);
xlv.setAdapter(baseAdapter);
vp.setAdapter(pagetAdapter);
vp.setAdapter(pagetAdapter);
pagetAdapter.notifyDataSetChanged();
baseAdapter.notifyDataSetChanged();
baseAdapter.notifyDataSetChanged();
//初始化点
initDot();
initDot();
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected String doInBackground(String... params) {
//获取Json串
try {
URL url=new URL(params[0]);
HttpURLConnection urlConnection= (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if(responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder=new StringBuilder();
String stringTemp="";
while((stringTemp=bufferedReader.readLine())!=null){
stringBuilder.append(stringTemp);
}
String result = stringBuilder.toString();
return result;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected String doInBackground(String... params) {
//获取Json串
try {
URL url=new URL(params[0]);
HttpURLConnection urlConnection= (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if(responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder=new StringBuilder();
String stringTemp="";
while((stringTemp=bufferedReader.readLine())!=null){
stringBuilder.append(stringTemp);
}
String result = stringBuilder.toString();
return result;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(path);
}
//无限轮播
private void sendMsg() {
handler.sendEmptyMessageDelayed(1,2000);
}
}
//无限轮播
private void sendMsg() {
handler.sendEmptyMessageDelayed(1,2000);
}
//初始化点
private void initDot() {
listiv = new ArrayList<>();
if(listiv!=null){
listiv.clear();
}
//清除LinearLayout里的所有控件
ll.removeAllViews();
for(int i=0;i<adlist1.size();i++){
ImageView iv=new ImageView(getActivity());
if(i==0){
iv.setImageResource(R.drawable.dot_focuable);
}else {
iv.setImageResource(R.drawable.dot_normal);
}
private void initDot() {
listiv = new ArrayList<>();
if(listiv!=null){
listiv.clear();
}
//清除LinearLayout里的所有控件
ll.removeAllViews();
for(int i=0;i<adlist1.size();i++){
ImageView iv=new ImageView(getActivity());
if(i==0){
iv.setImageResource(R.drawable.dot_focuable);
}else {
iv.setImageResource(R.drawable.dot_normal);
}
listiv.add(iv);
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(20,20);
params.setMargins(10,0,10,0);
ll.addView(iv,params);
}
}
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(20,20);
params.setMargins(10,0,10,0);
ll.addView(iv,params);
}
}
public void onlond(){
xlv.stopLoadMore();
xlv.stopRefresh();
xlv.setRefreshTime("完美");
}
xlv.stopLoadMore();
xlv.stopRefresh();
xlv.setRefreshTime("完美");
}
@Override
public void onRefresh() {
adlist1.clear();
hotcategory1.clear();
listiv.clear();
initData();
onlond();
public void onRefresh() {
adlist1.clear();
hotcategory1.clear();
listiv.clear();
initData();
onlond();
}
@Override
public void onLoadMore() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
initData();
baseAdapter.notifyDataSetChanged();
pagetAdapter.notifyDataSetChanged();
onlond();
}
},2000);
public void onLoadMore() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
initData();
baseAdapter.notifyDataSetChanged();
pagetAdapter.notifyDataSetChanged();
onlond();
}
},2000);
}
//XListview的适配器
class MyBaseAdapter extends BaseAdapter{
class MyBaseAdapter extends BaseAdapter{
@Override
public int getCount() {
return hotcategory1.size();
}
public int getCount() {
return hotcategory1.size();
}
@Override
public Object getItem(int position) {
return hotcategory1.get(position);
}
public Object getItem(int position) {
return hotcategory1.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView=View.inflate(getActivity(),R.layout.f2_item,null);
ImageView img= (ImageView) convertView.findViewById(R.id.f2_it_img);
TextView tv= (TextView) convertView.findViewById(R.id.f2_it_tv);
tv.setText(hotcategory1.get(position).getCname());
ImageLoader.getInstance().displayImage(hotcategory1.get(position).getImg(),img);
return convertView;
}
}
//ViewPager的适配器
class MyPagetAdapter extends PagerAdapter{
public View getView(int position, View convertView, ViewGroup parent) {
convertView=View.inflate(getActivity(),R.layout.f2_item,null);
ImageView img= (ImageView) convertView.findViewById(R.id.f2_it_img);
TextView tv= (TextView) convertView.findViewById(R.id.f2_it_tv);
tv.setText(hotcategory1.get(position).getCname());
ImageLoader.getInstance().displayImage(hotcategory1.get(position).getImg(),img);
return convertView;
}
}
//ViewPager的适配器
class MyPagetAdapter extends PagerAdapter{
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
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(getActivity());
ImageLoader.getInstance().displayImage(adlist1.get(position%adlist1.size()).getImg(),iv);
container.addView(iv);
return iv;
}
}
public Object instantiateItem(ViewGroup container, int position) {
ImageView iv=new ImageView(getActivity());
ImageLoader.getInstance().displayImage(adlist1.get(position%adlist1.size()).getImg(),iv);
container.addView(iv);
return iv;
}
}
}