package com.example.scoreview;
import java.util.ArrayList;
import java.util.List;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.example.fragment.MyFragment;
public class MainActivity extends FragmentActivity implements OnClickListener{
private ViewPager mypager;
private LinearLayout lin;
private List<Fragment> list;
private HorizontalScrollView hor;
private int mscreenwidth;
TextView tv;
String data[]={"舍内要闻","本社介绍","履行职责","自身建设","社员风采","历史回眸"};
String url[] = {
"http://www.93.gov.cn/93app/data.do?channelId=2&startNum=1",
"http://www.93.gov.cn/93app/data.do?channelId=2&startNum=2",
"http://www.93.gov.cn/93app/data.do?channelId=2&startNum=3",
"http://www.93.gov.cn/93app/data.do?channelId=2&startNum=4",
"http://www.93.gov.cn/93app/data.do?channelId=2&startNum=5",
"http://www.93.gov.cn/93app/data.do?channelId=2&startNum=6" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WindowManager wm=getWindowManager();
mscreenwidth=wm.getDefaultDisplay().getWidth();
init();
}
private void init() {
// TODO Auto-generated method stub
mypager=(ViewPager) findViewById(R.id.mypager);
lin=(LinearLayout) findViewById(R.id.lin);
hor=(HorizontalScrollView) findViewById(R.id.myscrollview);
//数据
initdata();
FragmentManager fm=getSupportFragmentManager();
mypager.setAdapter(new FragmentPagerAdapter(fm) {
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0);
}
});
mypager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
setselect(arg0);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
private void initdata() {
// TODO Auto-generated method stub
//设置滚动的数据;
setdata();
setTextviewData();
setselect(0);
}
private void setselect(int position) {
// TODO Auto-generated method stub
for (int i = 0; i < lin.getChildCount(); i++) {
TextView childAt = (TextView) lin.getChildAt(position);
// 字体的长度;
int k = childAt.getMeasuredWidth();
// 从字体到屏幕左边的距离;
int l = childAt.getLeft();
int s = l + k / 2 - mscreenwidth / 2;
hor.smoothScrollTo(s, 0);
TextView child = (TextView) lin.getChildAt(i);
if (position == i) {
child.setTextColor(Color.RED);
} else {
child.setTextColor(Color.BLACK);
}
}
}
private void setTextviewData() {
// TODO Auto-generated method stub
for (int i = 0; i < data.length; i++) {
tv=new TextView(getApplicationContext());
tv.setText(data[i]);
tv.setPadding(10, 10, 10, 10);
tv.setTextSize(20);
lin.addView(tv);
tv.setTextColor(Color.BLACK);
tv.setOnClickListener(this);
}
}
//设置滚动的数据;
private void setdata() {
// TODO Auto-generated method stub
list = new ArrayList<Fragment>();
for (int i = 0; i < data.length; i++) {
MyFragment fms=new MyFragment(url[i]);
list.add(fms);
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int m=(Integer) tv.getTag();
if(tv.getTag()!=null){
TextView tv=(TextView) lin.getChildAt(m);
if(tv==v){
mypager.setCurrentItem(m);
}
}
}
}
xml布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<HorizontalScrollView
android:id="@+id/myscrollview"
android:layout_width="match_parent"
android:layout_height="40dp"
android:scrollbars="none"
>
<LinearLayout
android:id="@+id/lin"
android:layout_width="fill_parent"
android:layout_height="40dp"
/>
</HorizontalScrollView>
<android.support.v4.view.ViewPager
android:id="@+id/mypager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</android.support.v4.view.ViewPager>
</LinearLayout>
、//Myfragment类
package com.example.fragment;
import java.util.List;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import com.bawei.network.NetWorkUtil;
import com.bawei.vo.Mydata;
import com.bawei.vo.Supper;
import com.example.adapter.MyBaseAdatpter;
import com.example.scoreview.R;
import com.google.gson.Gson;
public class MyFragment extends Fragment {
private String url;
private ListView listView;
private Handler h=new Handler(){
public void handleMessage(android.os.Message msg) {
String ss = (String) msg.obj;
Gson gson = new Gson();
Supper supper = gson.fromJson(ss, Supper.class);
final List<Mydata> list = supper.getData();
listView.setAdapter(new MyBaseAdatpter(list, getActivity()));
// listView.setOnItemClickListener(new OnItemClickListener() {
//
// @Override
// public void onItemClick(AdapterView<?> arg0, View arg1,
// int arg2, long arg3) {
// // TODO Auto-generated method stub
//
//
// Intent intent=new Intent(getActivity(),XiangqingActivity.class);
//
// intent.putExtra("id", list.get(arg2).getID());
// startActivity(intent);
//
// }
// });
};
};
public MyFragment(String url) {
this.url=url;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view = inflater.inflate(R.layout.activity_fragment, null);
listView = (ListView) view.findViewById(R.id.listvew);
new Thread() {
public void run() {
String s = NetWorkUtil.httpclient(url);
h.sendMessage(h.obtainMessage(1, s));
};
}.start();
return view;
}
}
fragment适配器
package com.example.adapter;
import java.util.List;
import com.bawei.vo.Mydata;
import com.example.scoreview.R;
import com.lidroid.xutils.BitmapUtils;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MyBaseAdatpter extends BaseAdapter{
List<Mydata> list;
Context context;
public MyBaseAdatpter(List<Mydata> list, Context context) {
super();
this.list = list;
this.context = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (convertView==null) {
convertView=View.inflate(context, R.layout.activity_fragment_item, null);
holder=new ViewHolder();
holder.layout1=(LinearLayout) convertView.findViewById(R.id.linn1);
holder.layout2=(LinearLayout) convertView.findViewById(R.id.linn2);
holder.textView1=(TextView) convertView.findViewById(R.id.text1);
holder.textView2=(TextView) convertView.findViewById(R.id.text2);
holder.textView3=(TextView) convertView.findViewById(R.id.text3);
holder.textVieww1=(TextView) convertView.findViewById(R.id.text11);
holder.textVieww2=(TextView) convertView.findViewById(R.id.text22);
holder.textVieww3=(TextView) convertView.findViewById(R.id.text33);
holder.imageView=(ImageView) convertView.findViewById(R.id.image);
convertView.setTag(holder);
}
else {
holder=(ViewHolder) convertView.getTag();
}
if (list.get(position).getIMAGEURL()!=null) {
holder.layout2.setVisibility(View.VISIBLE);
holder.layout1.setVisibility(View.GONE);
holder.textVieww1.setText(list.get(position).getTITLE());
holder.textVieww2.setText(list.get(position).getSUBTITLE());
holder.textVieww3.setText(list.get(position).getSHOWTIME());
BitmapUtils utils=new BitmapUtils(context);
utils.display(holder.imageView, list.get(position).getIMAGEURL());
}else {
holder.layout1.setVisibility(View.VISIBLE);
holder.layout2.setVisibility(View.GONE);
holder.textView1.setText(list.get(position).getTITLE());
holder.textView2.setText(list.get(position).getSUBTITLE());
holder.textView3.setText(list.get(position).getSHOWTIME());
}
return convertView;
}
class ViewHolder{
TextView textView1;
TextView textView2;
TextView textView3;
TextView textVieww1;
TextView textVieww2;
TextView textVieww3;
ImageView imageView;
LinearLayout layout1;
LinearLayout layout2;
}
}
fragment的adapter——item布局
<?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" >
<LinearLayout
android:id="@+id/linn1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone"
>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dfsf"
/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dfsf"
/>
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dfsf"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linn2"
android:visibility="gone"
>
<ImageView
android:id="@+id/image"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/ic_launcher"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:id="@+id/text11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dfsf"
/>
<TextView
android:id="@+id/text22"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dfsf"
/>
<TextView
android:id="@+id/text33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dfsf"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>