typelayout+Xlistview
来源:互联网 发布:平安科技 大数据应用 编辑:程序博客网 时间:2024/06/16 16:47
//activitymain
<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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" tools:context="com.example.lianxia.MainActivity"> <LinearLayout android:id="@+id/ll" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:background="@color/colorPrimary" android:orientation="horizontal"> <Button android:id="@+id/b1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@color/colorPrimary" android:onClick="b1" android:text="首页" android:textSize="18dp" /> <Button android:id="@+id/b2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@color/colorPrimary" android:onClick="b2" android:text="想法" android:textSize="18dp" /> <Button android:id="@+id/b3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@color/colorPrimary" android:onClick="b3" android:text="市场" android:textSize="18dp" /> <Button android:id="@+id/b4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@color/colorPrimary" android:onClick="b4" android:text="通知" android:textSize="18dp" /> <Button android:id="@+id/b5" android:layout_width="0dp" android:layout_height="wrap_content" android:background="@color/colorPrimary" android:layout_weight="1" android:onClick="b5" android:text="更多" android:textSize="18dp" /> </LinearLayout> <FrameLayout android:id="@+id/fl" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/ll"></FrameLayout></RelativeLayout>//frg1
<?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.example.lianxia.MainActivity"> <EditText android:id="@+id/et" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:hint="" /> <android.support.design.widget.TabLayout android:id="@+id/tl" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_below="@+id/et" android:layout_centerHorizontal="true" app:tabGravity="center" app:tabIndicatorColor="@color/colorAccent" app:tabMode="scrollable" app:tabTextColor="@color/colorPrimary"></android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/tl"></android.support.v4.view.ViewPager></RelativeLayout>//frag2
<?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"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="想法页面" /></LinearLayout>//item1
<?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"> <TextView android:id="@+id/desc" android:layout_width="match_parent" android:layout_height="50dp" /></LinearLayout>//item2
<?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="horizontal" > <ImageView android:id="@+id/img" android:layout_width="50dp" android:layout_height="50dp" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/desc" android:layout_width="match_parent" android:layout_height="50dp" /></LinearLayout>//rm
<?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="horizontal" > <ImageView android:id="@+id/img" android:layout_width="50dp" android:layout_height="50dp" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/desc" android:layout_width="match_parent" android:layout_height="50dp" /></LinearLayout>//MainActivity
package com.example.lianxia;import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.FrameLayout;import com.example.lianxia.frag.Fragment1;import com.example.lianxia.frag.Fragment2;import com.example.lianxia.frag.Fragment3;import com.example.lianxia.frag.Fragment4;import com.example.lianxia.frag.Fragment5;public class MainActivity extends AppCompatActivity { private FrameLayout fl; private Button b1,b2,b3,b4,b5; private Fragment1 fragment1; private Fragment2 fragment2; private Fragment3 fragment3; private Fragment4 fragment4; private Fragment5 fragment5; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initFragment(); } //控件初始化 private void initView() { b1 = (Button) findViewById(R.id.b1); b2 = (Button) findViewById(R.id.b2); b3 = (Button) findViewById(R.id.b3); b4 = (Button) findViewById(R.id.b4); b5 = (Button) findViewById(R.id.b5); b1.setTextColor(Color.RED); } private void initFragment() { fragment1 = new Fragment1(); fragment2 = new Fragment2(); fragment3 = new Fragment3(); fragment4 = new Fragment4(); fragment5 = new Fragment5(); getSupportFragmentManager().beginTransaction().add(R.id.fl,fragment1).commit(); getSupportFragmentManager().beginTransaction().add(R.id.fl,fragment2).commit(); getSupportFragmentManager().beginTransaction().add(R.id.fl,fragment3).commit(); getSupportFragmentManager().beginTransaction().add(R.id.fl,fragment4).commit(); getSupportFragmentManager().beginTransaction().add(R.id.fl,fragment5).commit(); getSupportFragmentManager().beginTransaction().hide(fragment1).commit(); getSupportFragmentManager().beginTransaction().hide(fragment2).commit(); getSupportFragmentManager().beginTransaction().hide(fragment3).commit(); getSupportFragmentManager().beginTransaction().hide(fragment4).commit(); getSupportFragmentManager().beginTransaction().hide(fragment5).commit(); getSupportFragmentManager().beginTransaction().show(fragment1).commit(); } public void b1(View view){ b1.setTextColor(Color.RED); b2.setTextColor(Color.BLACK); b3.setTextColor(Color.BLACK); b4.setTextColor(Color.BLACK); b5.setTextColor(Color.BLACK); getSupportFragmentManager().beginTransaction().show(fragment1).commit(); getSupportFragmentManager().beginTransaction().hide(fragment2).commit(); getSupportFragmentManager().beginTransaction().hide(fragment3).commit(); getSupportFragmentManager().beginTransaction().hide(fragment4).commit(); getSupportFragmentManager().beginTransaction().hide(fragment5).commit(); } public void b2(View view){ b1.setTextColor(Color.BLACK); b2.setTextColor(Color.RED); b3.setTextColor(Color.BLACK); b4.setTextColor(Color.BLACK); b5.setTextColor(Color.BLACK); getSupportFragmentManager().beginTransaction().hide(fragment1).commit(); getSupportFragmentManager().beginTransaction().show(fragment2).commit(); getSupportFragmentManager().beginTransaction().hide(fragment3).commit(); getSupportFragmentManager().beginTransaction().hide(fragment4).commit(); getSupportFragmentManager().beginTransaction().hide(fragment5).commit(); } public void b3(View view){ b1.setTextColor(Color.BLACK); b2.setTextColor(Color.BLACK); b3.setTextColor(Color.RED); b4.setTextColor(Color.BLACK); b5.setTextColor(Color.BLACK); getSupportFragmentManager().beginTransaction().hide(fragment1).commit(); getSupportFragmentManager().beginTransaction().hide(fragment2).commit(); getSupportFragmentManager().beginTransaction().show(fragment3).commit(); getSupportFragmentManager().beginTransaction().hide(fragment4).commit(); getSupportFragmentManager().beginTransaction().hide(fragment5).commit(); } public void b4(View view){ b1.setTextColor(Color.BLACK); b2.setTextColor(Color.BLACK); b3.setTextColor(Color.BLACK); b4.setTextColor(Color.RED); b5.setTextColor(Color.BLACK); getSupportFragmentManager().beginTransaction().hide(fragment1).commit(); getSupportFragmentManager().beginTransaction().hide(fragment2).commit(); getSupportFragmentManager().beginTransaction().hide(fragment3).commit(); getSupportFragmentManager().beginTransaction().show(fragment4).commit(); getSupportFragmentManager().beginTransaction().hide(fragment5).commit(); } public void b5(View view){ b1.setTextColor(Color.BLACK); b2.setTextColor(Color.BLACK); b3.setTextColor(Color.BLACK); b4.setTextColor(Color.BLACK); b5.setTextColor(Color.RED); getSupportFragmentManager().beginTransaction().hide(fragment1).commit(); getSupportFragmentManager().beginTransaction().hide(fragment2).commit(); getSupportFragmentManager().beginTransaction().hide(fragment3).commit(); getSupportFragmentManager().beginTransaction().hide(fragment4).commit(); getSupportFragmentManager().beginTransaction().show(fragment5).commit(); }}//App
package com.example.lianxia;import android.app.Application;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import java.io.File;public class MApp extends Application { @Override public void onCreate() { super.onCreate(); File file = getExternalCacheDir(); ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).memoryCacheExtraOptions(200, 200)//配置内存缓存图片的尺寸 .memoryCacheSize(2 * 1024 * 1024)//配置内存缓存的大小 .threadPoolSize(3)//配置加载图片的线程数 .threadPriority(1000)//配置线程的优先级 .diskCache(new UnlimitedDiskCache(file))//UnlimitedDiskCache 限制这个图片的缓存路径 .diskCacheFileCount(50)//配置sdcard缓存文件的数量 .diskCacheFileNameGenerator(new Md5FileNameGenerator())//MD5这种方式生成缓存文件的名字 .diskCacheSize(50 * 1024 * 1024)//在sdcard缓存50MB .memoryCacheExtraOptions(200, 200)//配置内存缓存图片的尺寸 .memoryCacheSize(2 * 1024 * 1024)//配置内存缓存的大小 .threadPoolSize(3)//配置加载图片的线程数 .threadPriority(1000)//配置线程的优先级 .diskCache(new UnlimitedDiskCache(file))//UnlimitedDiskCache 限制这个图片的缓存路径 .diskCacheFileCount(50)//配置sdcard缓存文件的数量 .diskCacheFileNameGenerator(new Md5FileNameGenerator())//MD5这种方式生成缓存文件的名字 .diskCacheSize(50 * 1024 * 1024)//在sdcard缓存50MB .build(); ImageLoader.getInstance().init(build); }}//dt
package com.example.lianxia.frag;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 com.example.lianxia.R;public class dt extends Fragment { private View view; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment5, container, false); return view; }}//rm
package com.example.lianxia.frag;import android.os.AsyncTask;import android.os.Bundle;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.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.bawei.wzq.wzlibrary.view.XListView;import com.example.lianxia.JsonBean;import com.example.lianxia.R;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;public class rm extends Fragment implements XListView.IXListViewListener { private View view; private XListView xlv; private DisplayImageOptions options; private List<JsonBean.ResultsBean> list = new ArrayList<>(); private MAdapter mAdapter; private int n = 1; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.rm, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //初始化 xlv = (XListView) view.findViewById(R.id.xlv); xlv.setPullLoadEnable(true); xlv.setXListViewListener(this); //sd卡 options = new DisplayImageOptions.Builder() .cacheOnDisk(true) //sd卡 .cacheInMemory(true) .build(); mAdapter = new MAdapter(); xlv.setAdapter(mAdapter); new MAsyncTask().execute("http://gank.io/api/data/Android/10/1"); } public void onLoad() { xlv.stopRefresh(); xlv.stopLoadMore(); xlv.setRefreshTime("刚刚"); } @Override public void onRefresh() { list.clear(); new MAsyncTask().execute("http://gank.io/api/data/Android/10/1"); onLoad(); } @Override public void onLoadMore() { n++; new MAsyncTask().execute("http://gank.io/api/data/Android/10/" + n); onLoad(); } //网络获取数据 class MAsyncTask extends AsyncTask<String, Void, String> { private StringBuilder builder; @Override protected String doInBackground(String... strings) { try { //获取url URL url = new URL(strings[0]); //请求网络 HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int code = urlConnection.getResponseCode(); //判断是否返回成功 if (code == 200) { //获取网络信息 InputStream inputStream = urlConnection.getInputStream(); BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream)); builder = new StringBuilder(); String s = ""; //拼接 while ((s = bf.readLine()) != null) { builder.append(s); } } } catch (Exception e) { e.printStackTrace(); } return builder.toString(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Log.e("Conan", s + "+-+-+-+-+-+-+-+-ss"); Gson gson = new Gson(); JsonBean jsonBean = gson.fromJson(s, JsonBean.class); List<JsonBean.ResultsBean> results = jsonBean.getResults(); list.addAll(results); mAdapter.notifyDataSetChanged(); } } //适配器 class MAdapter extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } class ViewHolder1 { TextView desc; } class ViewHolder2 { TextView desc; ImageView img; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); switch (type) { case 0: ViewHolder1 vh1; if (view == null) { view = View.inflate(getActivity(), R.layout.item1, null); vh1 = new ViewHolder1(); vh1.desc = (TextView) view.findViewById(R.id.desc); view.setTag(vh1); } else { vh1 = (ViewHolder1) view.getTag(); } vh1.desc.setText(list.get(i).getDesc()); break; case 1: ViewHolder2 vh2; if (view == null) { view = View.inflate(getActivity(), R.layout.item2, null); vh2 = new ViewHolder2(); vh2.desc = (TextView) view.findViewById(R.id.desc); vh2.img = view.findViewById(R.id.img); view.setTag(vh2); } else { vh2 = (ViewHolder2) view.getTag(); } vh2.desc.setText(list.get(i).getDesc()); ImageLoader.getInstance().displayImage("http://avatar.csdn.net/D/B/C/1_wangmengyao1115.jpg", vh2.img, options); break; } return view; } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { if (list.get(position).getImages() == null) { return 0; } else { return 1; } } }}//frag1
package com.example.lianxia.frag;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.design.widget.TabLayout;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.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.example.lianxia.R;import java.util.ArrayList;import java.util.List;public class Fragment1 extends Fragment { private View view; private TabLayout tl; private ViewPager vp; private List<String> list = new ArrayList<>(); private List<Fragment> flist = new ArrayList<>(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment1, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //初始化 tl = (TabLayout) view.findViewById(R.id.tl); vp = (ViewPager) view.findViewById(R.id.vp); //集合添加数据 list.add("动态"); list.add("热门"); list.add("发现"); //fragment集合 flist.add(new dt()); flist.add(new rm()); flist.add(new fx()); //适配器 vp.setAdapter(new MAdapter(getActivity().getSupportFragmentManager())); tl.setupWithViewPager(vp); } class MAdapter extends FragmentPagerAdapter { public MAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return flist.get(position); } @Override public int getCount() { return flist.size(); } @Override public CharSequence getPageTitle(int position) { return list.get(position); } }}//frag2
package com.example.lianxia.frag;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 com.example.lianxia.R;public class Fragment2 extends Fragment { private View view; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment2, container, false); return view; }}
阅读全文
0 0
- typelayout+Xlistview
- XListView
- XListView
- Xlistview
- XListView
- xListView
- XListView
- xlistview
- xListView
- XlistView
- xlistview
- xlistview
- XListView
- xlistview
- xListview
- XListView
- XListView
- xlistview
- 阿里云自研云数据库POLARDB_未来企业的数字化答案
- 利用递归实现折半查找
- 深入理解findViewById()
- org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session f
- 迷宫的实现
- typelayout+Xlistview
- Redis笔记(五)Redis的事务
- Echarts使用示例
- iOS开发-随机图片验证码
- Android接口回调机制
- 反射机制获取Class对象的三种方式
- 算法分析与设计——LeetCode Problem.16 3Sum Closest
- Mysql忘记密码
- 阻止knockout的事件默认执行