动态创建Fragment与TextView配合PullToRefresh刷新json串左右滑动
来源:互联网 发布:java in是什么意思啊 编辑:程序博客网 时间:2024/06/04 15:16
//Layout_Fragment布局代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/ptf_01" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
//Fragment代码
package com.bwie.ptw;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ListView;import com.bwie.ptw.adapter.ptf_adapter;import com.bwie.ptw.bean.jsonbean;import com.bwie.ptw.bean.lvbean;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLEncoder;import java.util.LinkedList;import java.util.List;/** * author:Created by WangZhiQiang on 2017/9/19. */public class Fragments extends Fragment { private View view; private String url = "http://gank.io/api/data/"; private int i = 1; private PullToRefreshListView ptf_01; private LinkedList<lvbean> list = new LinkedList<lvbean>(); private String strs; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.layout_fgmt, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ptf_01 = (PullToRefreshListView) view.findViewById(R.id.ptf_01); ptf_01.setMode(PullToRefreshBase.Mode.BOTH); Bundle bundle = getArguments(); strs = bundle.getString("str"); Log.e("asd", strs.toString()); //一个新的json串 Async();//解析json串 ptf_01.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { //下拉刷新的方法 new MyAsync1().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { //上拉加载的方法 new MyAsync2().execute(); } }); } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 1) { Gson gson = new Gson(); jsonbean jsonbean = gson.fromJson((String) msg.obj, jsonbean.class); List<com.bwie.ptw.bean.jsonbean.ResultsBean> results = jsonbean.getResults(); for (int j = 0; j < results.size(); j++) { String title = results.get(j).getDesc(); if (results.get(j).getImages() != null) { List<String> images = results.get(j).getImages(); String img = images.get(0); list.add(new lvbean(title, img)); } else { list.add(new lvbean(title)); } } ptf_01.setAdapter(new ptf_adapter(getActivity(), list)); Log.e("wwwwww", "我我我"); } } }; //解析json串 private void Async() { new Thread() { @Override public void run() { try { String new_url = url + URLEncoder.encode(strs) + "/10/" + i;//i代表刷新时要更换的页面 URL url = new URL(new_url); Log.e("sadas", new_url); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); InputStream inputStream = urlConnection.getInputStream(); if (responseCode == 200) { BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder builder = new StringBuilder(); String stringTemp = ""; while ((stringTemp = reader.readLine()) != null) { builder.append(stringTemp); } Message message = new Message(); message.what = 1; message.obj = builder.toString(); handler.sendMessage(message); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } public static Fragment receive(String str) { //静态方法传值 Bundle bundle = new Bundle(); bundle.putString("str", str); Fragments fragment = new Fragments(); fragment.setArguments(bundle); return fragment; } //下拉刷新的方法 class MyAsync1 extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { list.clear(); i++; Async(); ptf_01.onRefreshComplete(); super.onPostExecute(s); } } //上拉加载的方法 class MyAsync2 extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); i++; Async(); ptf_01.onRefreshComplete(); } }}//Layout_main布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwie.ptw.MainActivity"> <HorizontalScrollView android:id="@+id/ho" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/li" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" /> </HorizontalScrollView> <android.support.v4.view.ViewPager android:id="@+id/viewpage" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/ho" /></RelativeLayout>//MainActivity代码
package com.bwie.ptw;import android.graphics.Color;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.HorizontalScrollView;import android.widget.LinearLayout;import android.widget.TextView;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { private PullToRefreshListView ptf; private String title[] = new String[]{"福利", "Android", "iOS", "休息视频", "拓展资源", "前端", "all"}; private ArrayList<TextView> tx_list = new ArrayList<TextView>();//存放TextView private HorizontalScrollView ho; private LinearLayout li; private LinearLayout.LayoutParams params; private TextView textView; private Fragment fragment; private ViewPager viewpage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件id ho = (HorizontalScrollView) findViewById(R.id.ho); li = (LinearLayout) findViewById(R.id.li); viewpage = (ViewPager) findViewById(R.id.viewpage); initTitle();//初始化标题 viewpage.setAdapter(new MyFragAdapter(getSupportFragmentManager())); initColor();//初始化标题颜色 } private void initColor() { for (int i = 0; i < tx_list.size(); i++) { final TextView tv = tx_list.get(i); tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { viewpage.setCurrentItem(tv.getId() - 1000); tv.setTextColor(Color.RED); } }); } viewpage.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i = 0; i <tx_list.size() ; i++) { TextView tv1 = tx_list.get(i); if (i == position) { tv1.setTextColor(Color.RED); } else { tv1.setTextColor(Color.BLACK); } } } @Override public void onPageScrollStateChanged(int state) { } }); } private void initTitle() { for (int i = 0; i < title.length; i++) { textView = new TextView(MainActivity.this); textView.setText(title[i]); textView.setId(i + 1000); textView.setTextSize(20); params = new LinearLayout.LayoutParams (ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins(20, 10, 10, 10);//各种属性 li.addView(textView, params);//添加到LinearLayou布局里面 tx_list.add(textView);//将动态添加的TextView添加到集合,方便使用 } } //初始化页面 class MyFragAdapter extends FragmentPagerAdapter { public MyFragAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) {//返回标题上的每个标签(关注,新闻,国际) Log.e("asdasd","asdasdasd"+title[position].toString()); return new Fragments().receive(title[position].toString()); } @Override public int getCount() { return tx_list.size(); } }}
阅读全文
1 0
- 动态创建Fragment与TextView配合PullToRefresh刷新json串左右滑动
- viewpager与fragment 左右滑动效果 ---换fragment
- ViewPager左右滑动Fragment
- 左右滑动TextView改变日期
- ViewPager左右滑动与SwipeRefreshLayout下拉刷新冲突
- SwipeRefreshLayout上下刷新与左右滑动事件冲突的处理
- Android的Fragment左右滑动
- Fragment+ViewPager 左右滑动 Demo
- Fragment+ViewPager实现左右滑动
- 创建左右滑动视图
- ios左右滑动页面刷新
- PullToRefresh,fragment与TabLayout使用
- 动态加载fragment配合TabLayout
- Android:详情界面左右滑动看更多,ViewPager动态添加Fragment,仿51job详情界面
- PullToRefresh动态设置刷新的文字
- Fragment中使用左右滑动菜单
- ViewPager结合Fragment实现页面左右滑动
- ViewPager+Fragment实现左右滑动页
- servlet
- 使用KMS激活后浏览器主页打开是T999.cn
- MyBatis原始Dao开发方式
- LeetCode-52-N-Queens II 同前一题
- 第三周实践项目1(2)--顺序表的基本运算插入.删除数据,初始化.销毁线性表
- 动态创建Fragment与TextView配合PullToRefresh刷新json串左右滑动
- 函数指针与指针函数
- 其他-jxl的使用(操作excel表格)
- css选项卡
- 叶俊:能量获取的秘籍-奇文
- 嚼得菜根做得大事·《菜根谭》·四
- ARC下的内存管理
- Wireshark 抓包分析 RTSP/RTP/RTCP 基本工作过程
- 实现android上传多张图片和文字给php后台