MainActivity.java
public class MainActivity extends AppCompatActivity { //图片引导页 private ViewPager pager; private Button button; ArrayList<Integer> list; private SharedPreferences sharedPreferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pager = findViewById(R.id.pager); button = findViewById(R.id.btn); list = new ArrayList<>(); list.add(R.drawable.e); list.add(R.drawable.r); list.add(R.drawable.t); list.add(R.drawable.y); sharedPreferences = getSharedPreferences("ss", MODE_PRIVATE); Boolean aa=sharedPreferences.getBoolean("a",false); if (aa){ Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); } pager.setAdapter(new Madapter()); pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position){ case 0: button.setVisibility(View.GONE); break; case 1: button.setVisibility(View.GONE); break; case 2: button.setVisibility(View.GONE); break; case 3: button.setVisibility(View.VISIBLE); break; } } @Override public void onPageScrollStateChanged(int state) { } }); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { SharedPreferences.Editor edit = sharedPreferences.edit(); edit.putBoolean("a",true); edit.commit(); Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); } }); } class Madapter extends PagerAdapter{ @Override public int getCount() { return list.size(); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view==object; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { ImageView imageView = new ImageView(MainActivity.this); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setImageResource(list.get(position)); container.addView(imageView); return imageView; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } } }activity_main.xml
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="跳过" android:layout_marginTop="-200dp" android:layout_gravity="center_horizontal" android:visibility="gone" /> </LinearLayout>SecondActivity.java
public class SecondActivity extends BaseActivity{ //主页面 private ViewPager pager; private TabLayout tabLayout; private DrawerLayout drawerLayout; private ActionBarDrawerToggle toggle; @Override protected int getContentView() { return R.layout.second; } @Override protected void findView() { pager = findViewById(R.id.pager); tabLayout = findViewById(R.id.tab); drawerLayout = findViewById(R.id.draw); } @Override protected void initData() { pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { Fragment fragment=new Fragment(); switch (position){ case 0: fragment=new Afragment(); break; case 1: fragment=new Bfragment(); break; case 2: fragment=new Cfragment(); break; case 3: fragment=new Dfragment(); break; } return fragment; } @Override public int getCount() { return 4; } }); loadTabLayout(); setDrawerLayout(); } private void setDrawerLayout() { ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); toggle =new ActionBarDrawerToggle(this, drawerLayout, R.string.open, R.string.close); toggle.syncState(); drawerLayout.addDrawerListener(toggle); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (toggle.onOptionsItemSelected(item)){ return true; } return super.onOptionsItemSelected(item); } private void loadTabLayout() { tabLayout.addTab(tabLayout.newTab()); tabLayout.addTab(tabLayout.newTab()); tabLayout.addTab(tabLayout.newTab()); tabLayout.addTab(tabLayout.newTab()); tabLayout.setupWithViewPager(pager); tabLayout.getTabAt(0).setText("蒸"); tabLayout.getTabAt(1).setText("蒸"); tabLayout.getTabAt(2).setText("日"); tabLayout.getTabAt(3).setText("上"); } } second.xml <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/draw" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="9"/> <android.support.design.widget.TabLayout android:id="@+id/tab" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout> <fragment class="fanruiqi.bwie.com.yuekaolx.fragment.Efragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start"/> </android.support.v4.widget.DrawerLayout>Afragment.java
public class Afragment extends Fragment{ //xlv显示 Dao dao; private XListView xListView; public int page=1; public String urlString="http://www.xieast.com/api/news/news.php?type=top&page="+page+""; private MyBaseAdapter adapter; @Nullable @Override public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.afrag, null); dao = new Dao(getActivity()); //dao.query(); //dao.insert("aa","aaa"); xListView = view.findViewById(R.id.xlv); adapter = new MyBaseAdapter(getLayoutInflater()); xListView.setAdapter(adapter); xListView.setPullLoadEnable(true); xListView.setPullRefreshEnable(true); xListView.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { page=1; initData(urlString); } @Override public void onLoadMore() { initData(urlString); } }); initData(urlString); xListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { String title=adapter.getList().get(i-1).getTitle(); String img = adapter.getList().get(i - 1).getThumbnail_pic_s(); Intent intent = new Intent(getActivity(), ThredActivity.class); intent.putExtra("title",title); intent.putExtra("img",img); startActivity(intent); } }); return view; } private void initData(String urlString) { new AsyncTask<String, Void, List<ResponseBean.DataBean>>() { @Override protected List<ResponseBean.DataBean> doInBackground(String... strings) { String datas = Http.requestData(strings[0]); ResponseBean responseBean = new Gson().fromJson(datas, ResponseBean.class); if (responseBean!=null){ return responseBean.getData(); } return null; } @Override protected void onPostExecute(List<ResponseBean.DataBean> responseBeans) { super.onPostExecute(responseBeans); caseR((ArrayList<ResponseBean.DataBean>) responseBeans); closeXlv(); } }.execute(urlString); } private void caseR(ArrayList<ResponseBean.DataBean> bs){ if (page==1){ adapter.setDatas(bs); }else { adapter.addDatas(bs); } } private void closeXlv(){ page++; xListView.stopRefresh(); xListView.stopLoadMore(); } }Bfragment.java
public class Bfragment extends Fragment{ //频道管理 private String jsonStr; ArrayList<ChannelBean> list; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.bfrag, null); Button button = view.findViewById(R.id.btn); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (list==null){ list = new ArrayList<>(); list.add(new ChannelBean("热点",true)); list.add(new ChannelBean("军事",true)); list.add(new ChannelBean("八卦",true)); list.add(new ChannelBean("游戏",true)); list.add(new ChannelBean("宠物",true)); list.add(new ChannelBean("汽车",false)); list.add(new ChannelBean("热卖",false)); list.add(new ChannelBean("外卖",false)); list.add(new ChannelBean("太阳花",false)); list.add(new ChannelBean("九三",false)); list.add(new ChannelBean("八嘎",false)); list.add(new ChannelBean("色昂",false)); ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),list); Gson gson = new Gson(); String jsonArray = gson.toJson(list); Intent intent = new Intent(getActivity(), ChannelActivity.class); intent.putExtra(RESULT_JSON_KEY, jsonArray); startActivityForResult(intent, REQUEST_CODE); }else if(jsonStr!=null){ ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),jsonStr); } } }); return view; } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode== REQUEST_CODE&&resultCode==ChannelActivity.RESULT_CODE) { jsonStr = data.getStringExtra(RESULT_JSON_KEY); } } }ThredAcrtivity.java
public class ThredActivity extends AppCompatActivity{ private ViewPager pager; public String urlString="http://www.xieast.com/api/banner.php"; private BannerAdapter adapter; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.thred); pager = findViewById(R.id.pager); ImageView imageView = findViewById(R.id.image); TextView textView = findViewById(R.id.textview); Intent intent = getIntent(); String img = intent.getStringExtra("img"); String title = intent.getStringExtra("title"); textView.setText(title); ImageLoader.getInstance().displayImage(img,imageView); adapter = new BannerAdapter(getLayoutInflater()); pager.setAdapter(adapter); initData(urlString); } private void initData(String urlString) { new AsyncTask<String, Void, ArrayList<BannerBean.DataBean>>() { @Override protected ArrayList<BannerBean.DataBean> doInBackground(String... strings) { String datas = Http.requestData(strings[0]); BannerBean bannerBean = new Gson().fromJson(datas, BannerBean.class); if (bannerBean!=null){ return (ArrayList<BannerBean.DataBean>) bannerBean.getData(); } return null; } @Override protected void onPostExecute(ArrayList<BannerBean.DataBean> dataBeans) { super.onPostExecute(dataBeans); adapter.setDatas(dataBeans); } }.execute(urlString); } }BaseActivity
public abstract class BaseActivity extends AppCompatActivity{ //基类 @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getContentView()); findView(); initData(); } protected abstract int getContentView(); protected abstract void findView(); protected abstract void initData(); }App.java
public class App extends Application{ //网络加载图片 @Override public void onCreate() { super.onCreate(); //BitmapDisplayer bitmapDisplayer = new CircleBitmapDisplayer(); DisplayImageOptions options = new DisplayImageOptions.Builder() //.displayer(bitmapDisplayer) .showImageOnLoading(R.drawable.ic_launcher) .showImageForEmptyUri(R.drawable.ic_launcher) .cacheInMemory(true) .build(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration .Builder(this) .defaultDisplayImageOptions(options) .build(); ImageLoader.getInstance().init(configuration); } }Http.java
public class Http { //网络请求字符串数据,外部类,被内部调用 public static String requestData(String string){ String getgson=null; try { URL url = new URL(string); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setConnectTimeout(50*1000); urlConnection.setReadTimeout(50*1000); int responseCode = urlConnection.getResponseCode(); if(responseCode==200){ String gsonString = stream2String(urlConnection.getInputStream()); getgson=gsonString; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return getgson; } private static String stream2String(InputStream inputStream) { StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); try { for (String tmp = bufferedReader.readLine(); tmp!=null; tmp=bufferedReader.readLine()) { stringBuilder.append(tmp); } } catch (IOException e) { e.printStackTrace(); } finally { try { bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } return stringBuilder.toString(); } }SqliteHelper.java
public class SqliteHelper extends SQLiteOpenHelper{ //数据库建表 public SqliteHelper(Context context) { super(context,"user.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table users(id integer primary key autoincrement,name text,age text)"); db.execSQL("insert into users (name,age) values(?,?)",new String[]{"frq","frq"}); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }Dao.java
public class Dao { //操作数据库 private final SqliteHelper sqliteHelper; SQLiteDatabase database; public Dao(Context context) { sqliteHelper = new SqliteHelper(context); database = sqliteHelper.getReadableDatabase(); } public ArrayList<Sqlite> query() { Cursor cursor = database.rawQuery("select * from users", null); ArrayList<Sqlite> list = new ArrayList<>(); while (cursor.moveToNext()){ String name = cursor.getString(cursor.getColumnIndex("name")); String age = cursor.getString(cursor.getColumnIndex("age")); Sqlite sqlite = new Sqlite(name, age); list.add(sqlite); } return list; } public void insert(String aa, String aaa) { database.execSQL("insert into users(name,age) values(?,?)",new Object[]{aa,aaa}); } }BannerAdapter
public class BannerAdapter extends PagerAdapter{ //加载viewpager图片 private LayoutInflater layoutInflater; ArrayList<BannerBean.DataBean> list; public BannerAdapter(LayoutInflater layoutInflater) { this.layoutInflater = layoutInflater; list = new ArrayList<>(); } public void setDatas(ArrayList<BannerBean.DataBean> datas) { list.addAll(datas); notifyDataSetChanged(); } @Override public int getCount() { return list.size(); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view==object; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { ImageView imageView = new ImageView(layoutInflater.getContext()); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(list.get(position).getImg(),imageView); container.addView(imageView); return imageView; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } }MyBaseAdapter.java
public class MyBaseAdapter extends BaseAdapter{ //加载xlv的adapter private LayoutInflater layoutInflater; private final ArrayList<ResponseBean.DataBean> list; public MyBaseAdapter(LayoutInflater layoutInflater) { this.layoutInflater = layoutInflater; list = new ArrayList<>(); } public ArrayList<ResponseBean.DataBean> getList() { return list; } public void setDatas(ArrayList<ResponseBean.DataBean> datas) { list.clear(); list.addAll(datas); notifyDataSetChanged(); } public void addDatas(ArrayList<ResponseBean.DataBean> bs) { list.addAll(bs); notifyDataSetChanged(); } /*public static final int ONE=0; public static final int TWO=1; public static final int THREE=2; @Override public int getItemViewType(int position) { ResponseBean.DataBean dataBean = list.get(position); if (!TextUtils.isEmpty(dataBean.getThumbnail_pic_s03())){ return THREE; }else if (!TextUtils.isEmpty(dataBean.getThumbnail_pic_s02())){ return TWO; }else { return ONE; } } @Override public int getViewTypeCount() { return 3; }*/ @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; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (getItemViewType(i)==ONE){ ViewHolder viewHolder=null; if (view==null){ viewHolder = new ViewHolder(); view = layoutInflater.inflate(R.layout.item, viewGroup, false); viewHolder.textView = view.findViewById(R.id.text); viewHolder.imageView = view.findViewById(R.id.img); view.setTag(viewHolder); }else { viewHolder = (ViewHolder) view.getTag(); } viewHolder.textView.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),viewHolder.imageView); }else if (getItemViewType(i)==TWO){ ViewHolder2 viewHolder2=null; if (view==null){ viewHolder2 = new ViewHolder2(); view = layoutInflater.inflate(R.layout.item2, viewGroup, false); viewHolder2.textView = view.findViewById(R.id.text); viewHolder2.imageView = view.findViewById(R.id.img); viewHolder2.imageView2 = view.findViewById(R.id.img2); view.setTag(viewHolder2); }else { viewHolder2 = (ViewHolder2) view.getTag(); } viewHolder2.textView.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),viewHolder2.imageView); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s02(),viewHolder2.imageView2); }else { ViewHolder3 viewHolder3=null; if (view==null){ viewHolder3 = new ViewHolder3(); view = layoutInflater.inflate(R.layout.item3, viewGroup, false); viewHolder3.textView = view.findViewById(R.id.text); viewHolder3.imageView = view.findViewById(R.id.img); viewHolder3.imageView2 = view.findViewById(R.id.img2); viewHolder3.imageView3 = view.findViewById(R.id.img3); view.setTag(viewHolder3); }else { viewHolder3 = (ViewHolder3) view.getTag(); } viewHolder3.textView.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),viewHolder3.imageView); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s02(),viewHolder3.imageView2); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s03(),viewHolder3.imageView3); } return view; } class ViewHolder{ private TextView textView; private ImageView imageView; } class ViewHolder2{ private TextView textView; private ImageView imageView; private ImageView imageView2; } class ViewHolder3{ private TextView textView; private ImageView imageView; private ImageView imageView2; private ImageView imageView3; } }