//MAinActivity 页面
package com.example.zhouk3;
import android.graphics.Color;
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.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private HorizontalScrollView hs;
private LinearLayout ll;
private ViewPager vp;
private ArrayList<TextView> textViews;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hs =(HorizontalScrollView)findViewById(R.id.hs);
ll =(LinearLayout)findViewById(R.id.ll);
vp =(ViewPager)findViewById(R.id.vp);
String titles[]=new String[]{"福利", "Android", "ios", "休息视频", "扩展资源", "前端", "all"};
//创建集合
textViews = new ArrayList<>();
for (int i = 0; i <titles.length ; i++) {
TextView textView = new TextView(MainActivity.this);
textView.setText(titles[i]);
textView.setTextSize(20);
textView.setId(i+1000);
textView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
int id = v.getId();
vp.setCurrentItem(id-1000);
}
});
if (i==0){
textView.setTextColor(Color.RED);
}else{
textView.setTextColor(Color.BLACK);
}
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(20,10,20,10);
ll.addView(textView,layoutParams);
textViews.add(textView);
}
Madapter madapter = new Madapter(getSupportFragmentManager());
vp.setAdapter(madapter);
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
for (int j=0;j<textViews.size();j++){
if (position==j){
textViews.get(j).setTextColor(Color.RED);
}else{
textViews.get(j).setTextColor(Color.BLACK);
}
}
TextView textView1 = textViews.get(position);
int i1 = textView1.getWidth() + 10;
hs.scrollTo(i1*position,0);
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
class Madapter extends FragmentPagerAdapter{
public Madapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragment1.getok(textViews.get(position).getText().toString());
}
@Override
public int getCount() {
return textViews.size();
}
}
}
//Fragment传值
package com.example.zhouk3;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
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.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
*
*/
public class fragment1 extends Fragment{
private View view;
private PullToRefreshListView pull;
String nam="福利";
int index=1;
List<User.ResultsBean> arr;
private Madapter madapter;
private List<User.ResultsBean> results;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = View.inflate(getActivity(), R.layout.fragment1, null);
pull = (PullToRefreshListView)view.findViewById(R.id.pull_refresh_list);
return view;
}
public static Fragment getok(String ss){
fragment1 ff = new fragment1();
Bundle bundle = new Bundle();
bundle.putString("name",ss);
ff.setArguments(bundle);
return ff;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle arguments = getArguments();
String string = arguments.getString("name");
nam=string;
arr=new ArrayList<User.ResultsBean>();
pull.setMode(PullToRefreshBase.Mode.BOTH);//设置拉
madapter = new Madapter();
pull.setAdapter(madapter);
try {
new MAsayTask().execute("http://gank.io/api/data/"+URLEncoder.encode(nam,"utf-8")+"/10/"+index);
pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
try {
arr.clear();
index=1;
new MAsayTask().execute("http://gank.io/api/data/"+URLEncoder.encode(nam,"utf-8")+"/10/"+index);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
try {
index++;
new MAsayTask().execute("http://gank.io/api/data/"+URLEncoder.encode(nam,"utf-8")+"/10/"+index);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
//适配器
class Madapter extends BaseAdapter{
@Override
public int getItemViewType(int position) {
if (arr.get(position).getImages()==null){
return 0;
}
return 1;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getCount() {
return arr.size();
}
@Override
public Object getItem(int position) {
return arr.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int itemViewType = getItemViewType(position);
User.ResultsBean resultsBean = arr.get(position);
switch (itemViewType){
case 0:
ViewHolder1 vh1;
if (convertView==null){
convertView = View.inflate(getActivity(), R.layout.duo2, null);
vh1=new ViewHolder1();
vh1.tv1=(TextView) convertView.findViewById(R.id.tv1);
convertView.setTag(vh1);
}else{
vh1=(ViewHolder1) convertView.getTag();
}
vh1.tv1.setText(resultsBean.getDesc());
break;
case 1:
ViewHolder vh;
if (convertView==null){
convertView = View.inflate(getActivity(), R.layout.duo, null);
vh = new ViewHolder();
vh.tv=(TextView) convertView.findViewById(R.id.tv);
vh.img=(ImageView) convertView.findViewById(R.id.img);
convertView.setTag(vh);
}else{
vh=(ViewHolder) convertView.getTag();
}
vh.tv.setText(resultsBean.getDesc());
ImageLoader.getInstance().displayImage(resultsBean.getImages().get(0),vh.img);
break;
}
return convertView;
}
class ViewHolder{
ImageView img;
TextView tv;
}
class ViewHolder1{
TextView tv1;
}
}
//异步
class MAsayTask extends AsyncTask<String,Void,String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
User user = gson.fromJson(s, User.class);
results = user.getResults();
arr.addAll(results);
madapter.notifyDataSetChanged();
pull.onRefreshComplete();
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected String doInBackground(String... params) {
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 builder = new StringBuilder();
String string="";
while ((string=bufferedReader.readLine())!=null){
builder.append(string);
}
return builder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
}