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

综合(侧拉+TabLayout+ListView+t跳转+轮播+GridView)

2017-09-21 09:03 267 查看
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {

private TabLayout tablayout;
private ViewPager viewpage;
private List<String> list=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//设置tablayout数据
settablayoutdata();

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
//设置tablayout数据
private void settablayoutdata() {
tablayout = (TabLayout) findViewById(R.id.tablayout);
viewpage = (ViewPager) findViewById(R.id.viewpage);
list.add("头条");
list.add("社会");
list.add("国内");
list.add("国际");
list.add("娱乐");
list.add("体育");
list.add("军事");
list.add("科技");
list.add("财经");
list.add("时尚");

tablayout.setupWithViewPager(viewpage);
viewpage.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
@Override
public Fragment getItem(int position) {
NewFragment newFragment = new NewFragment();
Bundle bundle = new Bundle();
if (list.get(position).equals("头条")){
bundle.putString("name","top");
}else if (list.get(position).equals("社会")){
bundle.putString("name","shehui");
}else if (list.get(position).equals("国内")){
bundle.putString("name","guonei");
}else if (list.get(position).equals("国际")){
bundle.putString("name","guoji");
}else if (list.get(position).equals("娱乐")){
bundle.putString("name","yule");
}else if (list.get(position).equals("体育")){
bundle.putString("name","tiyu");
}else if (list.get(position).equals("军事")){
bundle.putString("name","junshi");
}else if (list.get(position).equals("科技")){
bundle.putString("name","keji");
}else if (list.get(position).equals("财经")){
bundle.putString("name","caijing");
}else if (list.get(position).equals("时尚")){
bundle.putString("name","shishang");
}
//给fragment 加bundle 数据
//activity与fragment 1.getset,2.接口回调,3.setArguments ,getAraguments
newFragment.setArguments(bundle);
return newFragment;
}
@Override
public int getCount() {
return list.size();
}
});
}
//设置listview数据
private void setlistviewdata() {
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}

return super.onOptionsItemSelected(item);
}

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();

if (id == R.id.nav_camera) {
// Handle the camera action
} else if (id == R.id.nav_gallery) {

} else if (id == R.id.nav_slideshow) {

} else if (id == R.id.nav_manage) {

} else if (id == R.id.nav_share) {

} else if (id == R.id.nav_send) {

}

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}


==================================================================

public class NewFragment extends Fragment{

private ListView listview;
private View view;

private HttpURLConnection conne;
private List<NewDatas.ResultBean.DataBean> data ;
private PullToRefreshLayout pull;
public String aa="";

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//初始化布局
view = View.inflate(getActivity(), R.layout.listview,null);
//初始化控件
pull = (PullToRefreshLayout) view.findViewById(R.id.pull);
listview = view.findViewById(R.id.list);
//pulltorefresh的点击事件
pull.setRefreshListener(new BaseRefreshListener() {
@Override
//刷新
public void refresh() {

pull.finishRefresh();
}
@Override
//加载
public void loadMore() {
pull.finishLoadMore();
}
});
dianji();
return view;
}
private void dianji() {
//listview的点击跳转
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getActivity(),Main2Activity.class);
intent.putExtra("name",aa);
startActivity(intent);

10f72
}
});
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle bundle = getArguments();
//接收传递过来的值
String string = bundle.getString("name", "top");
//调用解析方法
Jiexi(string);

}

private void Jiexi(final String string) {
//异步加载
new AsyncTask<String ,String ,String >(){
String  myurl="http://v.juhe.cn/toutiao/index?type="+string+"&key=8c6e9ca2058eaffcc04bcc4c0f5920c6";
protected String doInBackground(String... strings) {
//网络请求数据
String str="";
try {
URL url = new URL(myurl);
conne = (HttpURLConnection) url.openConnection();

conne.setConnectTimeout(5000);
conne.setReadTimeout(5000);
int responseCode = conne.getResponseCode();
if (responseCode==200){
InputStream in = conne.getInputStream();

byte[] by=new byte[1024];
int len=0;

while ((len=in.read(by))!=-1){
str+=new String(by,0,len);
}

}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String s) {

//gson解析
aa=s;
Gson gson = new Gson();
NewDatas newDatas = gson.fromJson(s, NewDatas.class);
data = newDatas.getResult().getData();
//listview适配器
MyAdapter myAdapter = new MyAdapter(getActivity(),data);
listview.setAdapter(myAdapter);
super.onPostExecute(s);

}
}.execute();
}

}


=========================================================

public class App extends Application {
@Override
public void onCreate() {

DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.mipmap.ic_launcher)
.displayer(new FadeInBitmapDisplayer(2000)).cacheOnDisk(true)
.cacheInMemory(true).build();

ImageLoaderConfiguration configs = new ImageLoaderConfiguration.Builder(
this).defaultDisplayImageOptions(options).threadPoolSize(5)
.build();

ImageLoader.getInstance().init(configs);
super.onCreate();

}
}


===========================================================

public class Main2Activity extends AppCompatActivity {

private GridView r;
private ListView lsit;
private   List<NewDatas.ResultBean.DataBean> data;
//轮播下面的小点(小圆点是本地的,自己导入的图片)

private ConvenientBanner convenientBanner;
//图片加载地址的集合
private List<String> bean=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化布局
setContentView(R.layout.activity_main2);
//  初始化控件
r = (GridView) findViewById(R.id.r);
lsit = (ListView) findViewById(R.id.list);

//得到传递过来的数据
Intent intent = getIntent();
String name = intent.getStringExtra("name");
//解析从网络上获取到的数据
Gson gson = new Gson();
NewDatas newDatas = gson.fromJson(name, NewDatas.class);
data = newDatas.getResult().getData();
//设置适配器
MyAdapter myAdapter = new MyAdapter(Main2Activity.this, data);

r.setAdapter(myAdapter);
lsit.setAdapter(myAdapter);
String a = data.get(0).getThumbnail_pic_s();
String a1 = data.get(0).getThumbnail_pic_s02();
String a2 = data.get(0).getThumbnail_pic_s03();

bean.add(a);
bean.add(a1);
bean.add(a2);
convenientBanner = (ConvenientBanner) findViewById(R.id.convenientBanner);

//        bean = Arrays.asList(im
convenientBanner.setManualPageable(true);
//设置自动轮播的时间
convenientBanner.startTurning(2000);
//设置点击事件
//泛型为具体实现类ImageLoaderHolder
convenientBanner.setPages(new CBViewHolderCreator<NetImageLoadHolder>() {
@Override
public NetImageLoadHolder createHolder() {
return new NetImageLoadHolder();
}
}, bean);

//设置每个pager的点击事件
convenientBanner.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(int position) {
Toast.makeText(Main2Activity.this, "点击了" + convenientBanner.getCurrentItem(), Toast.LENGTH_SHORT).show();
}
});
}

public class NetImageLoadHolder implements Holder<String> {
private ImageView image_lv;

//可以是一个布局也可以是一个Imageview
@Override
public ImageView createView(Context context) {
image_lv = new ImageView(context);
image_lv.setScaleType(ImageView.ScaleType.FIT_XY);

return image_lv;

}

@Override
public void UpdateUI(Context context, int position, String data) {
//Glide框架
Glide.with(context).load(data).into(image_lv);

}

}
}

==========================================

public class MyAdapter extends BaseAdapter {

private Context context;
private List<NewDatas.ResultBean.DataBean> list;

public MyAdapter(Context context, List<NewDatas.ResultBean.DataBean> list) {
this.context = context;
this.list = list;
}

public static final int TYPE_ONE = 0;
public static final int TYPE_TWO = 1;

@Override
public int getCount() {

return list.size();

}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public int getItemViewType(int position) {
//判断view类型
int p = position % 2;
if (p == 0) {
return TYPE_ONE;
} else {
return TYPE_TWO;
}
}
@Override
public int getViewTypeCount() {
return 2;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = null;
ViewHolder1 holder1 = null;
int type = getItemViewType(position);
if (convertView == null) {
if (type==TYPE_ONE){
holder = new ViewHolder();
convertView = View.inflate(context, R.layout.list_item_one, null);
holder.lv_iv = (ImageView) convertView.findViewById(R.id.lv_iv);
holder.lv_tv = (TextView) convertView.findViewById(R.id.lv_tv);
holder.lv_time = (TextView) convertView.findViewById(R.id.lv_time);
convertView.setTag(holder);
}else {
holder1 = new ViewHolder1();
convertView = View.inflate(context, R.layout.list_view_two, null);
holder1.lv2_iv1 = (ImageView) convertView.findViewById(R.id.lv2_iv1);
holder1.lv2_iv2 = (ImageView) convertView.findViewById(R.id.lv2_iv2);
convertView.setTag(holder1);
}
} else {
if (type==TYPE_ONE){
holder = (ViewHolder) convertView.getTag();
}
else {
holder1 = (ViewHolder1) convertView.getTag();
}
}
if (type==TYPE_ONE){
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(), holder.lv_iv);
holder.lv_tv.setText(list.get(position).getTitle());
holder.lv_time.setText(list.get(position).getAuthor_name());}
else {
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(), holder1.lv2_iv1);
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(), holder1.lv2_iv2);
}
return convertView;
}

class ViewHolder {
ImageView lv_iv;
TextView lv_tv;
TextView lv_time;
}
class ViewHolder1{
ImageView lv2_iv1;
ImageView lv2_iv2;
}
}


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