1. 程式人生 > >JAVA高階程式設計四月模擬考

JAVA高階程式設計四月模擬考

**

MainActivity中輪播圖,劃至最後一張進入登入頁面

package com.bwie.newsmonth04;

import android.content.Intent; import android.content.SharedPreferences; import android.support.annotation.NonNull; import android.support.v4.view.PagerAdapter; 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.Button; import android.widget.ImageView;

import com.bwie.newsmonth04.base.BaseActivity;

import java.util.ArrayList; import java.util.List;

public class MainActivity extends BaseActivity implements View.OnClickListener {

private ViewPager vpSplash;
private List<Integer> imgIds;
private Button btnGotoMain;
private SharedPreferences sp;

@Override
protected int getContentView() {
    return R.layout.activity_main;
}

@Override
protected void initView() {
    vpSplash = findViewById(R.id.vp_splash);
    btnGotoMain = findViewById(R.id.btn_goto_main);
}

@Override
protected void initData() {
    super.initData();

    sp = getSharedPreferences("config", MODE_PRIVATE);
    if (!sp.getBoolean("is_first", true)) {
        Intent intent = new Intent(this, LoginActivity.class);
        startActivity(intent);
        finish();
        return;
    }

    imgIds = new ArrayList<>();
    imgIds.add(R.drawable.a1);
    imgIds.add(R.drawable.a2);
    imgIds.add(R.drawable.a3);

    vpSplash.setAdapter(new PagerAdapter() {
        @Override
        public int getCount() {
            return imgIds.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 img = new ImageView(mContext);
            img.setImageResource(imgIds.get(position));
            container.addView(img);
            return img;
        }

        @Override
        public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
            container.removeView((View) object);
        }
    });
}

@Override
protected void setListener() {
    super.setListener();
    vpSplash.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            if (position == imgIds.size() - 1) {
                btnGotoMain.setVisibility(View.VISIBLE);
            } else {
                btnGotoMain.setVisibility(View.GONE);
            }
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

    btnGotoMain.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn_goto_main:
            Intent intent = new Intent(this, LoginActivity.class);
            startActivity(intent);
            break;
    }
}

} **

登入頁面,通過網址獲取賬戶密碼

**

**

package com.bwie.newsmonth04;

import android.content.Intent; import android.content.SharedPreferences; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText;

import com.bwie.newsmonth04.base.BaseActivity; import com.bwie.newsmonth04.bean.LoginResult; import com.bwie.newsmonth04.constant.ServerUrl; import com.bwie.newsmonth04.utils.HttpUtils; import com.google.gson.Gson;

public class LoginActivity extends BaseActivity implements View.OnClickListener { public static final int FLAG = 123;

private EditText etUsername;
private EditText etPassword;
private Button btnLogin;

private SharedPreferences sp;

private Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        switch (msg.what) {
            case FLAG:
                String result = (String) msg.obj;
                Gson gson = new Gson();
                LoginResult loginResult = gson.fromJson(result, LoginResult.class);
                if (loginResult != null) {
                    if (loginResult.getCode() == 0) {
                        sp.edit().putBoolean("is_first", false).commit();
                        Intent intent = new Intent(mContext, HomeActivity.class);
                        startActivity(intent);
                    }
                }
                break;
        }
    }
};

@Override
protected int getContentView() {
    return R.layout.activity_login;
}

@Override
protected void initView() {
    etUsername = findViewById(R.id.et_username);
    etPassword = findViewById(R.id.et_password);
    btnLogin = findViewById(R.id.btn_login);
}

@Override
protected void initData() {
    super.initData();
    sp = getSharedPreferences("config", MODE_PRIVATE);
}

@Override
protected void setListener() {
    super.setListener();
    btnLogin.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn_login:
            final String username = etUsername.getText().toString().trim();
            final String password = etPassword.getText().toString();

// if (username.equals())

            new Thread(new Runnable() {
                @Override
                public void run() {
                    String url = ServerUrl.LOGIN_URL + "mobile=" + username + "&password=" + password;
                    String result = HttpUtils.getStringFromHttp(url);
                    Message msg = Message.obtain();
                    msg.what = FLAG;
                    msg.obj = result;
                    handler.sendMessage(msg);
                }
            }).start();


            break;
    }
}

}

** **

登入LoginResult

package com.bwie.newsmonth04.bean;

/**

  • Created by eric on 2018/9/20. */

public class LoginResult { private String msg; private int code;

public String getMsg() {
    return msg;
}

public void setMsg(String msg) {
    this.msg = msg;
}

public int getCode() {
    return code;
}

public void setCode(int code) {
    this.code = code;
}

}

** **

進入顯示頁面,上面是輪播圖,下面多條目載入繼承BaseActivity

package com.bwie.newsmonth04;

import android.support.annotation.Nullable; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle;

import com.bwie.newsmonth04.base.BaseActivity; import com.bwie.newsmonth04.fragment.EmptyFragment; import com.bwie.newsmonth04.fragment.NewsFragment;

import java.util.ArrayList; import java.util.List;

public class HomeActivity extends BaseActivity {

private TabLayout tblNews;
private ViewPager vpNews;

private List<String> titles;
private List<Fragment> fragmentList;


@Override
protected int getContentView() {
    return R.layout.activity_home;
}

@Override
protected void initView() {
    tblNews = findViewById(R.id.tbl_news);
    vpNews = findViewById(R.id.vp_news);
}

@Override
protected void initData() {
    super.initData();
    titles = new ArrayList<>();
    tblNews.setTabMode(TabLayout.MODE_SCROLLABLE);

    addData();

    fragmentList = new ArrayList<>();
    fragmentList.add(new NewsFragment());
    for (int i = 1; i < titles.size(); i++) {
        EmptyFragment fragment = EmptyFragment.newInstance(titles.get(i));
        fragmentList.add(fragment);
    }

    vpNews.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
        @Override
        public int getCount() {
            return fragmentList.size();
        }

        @Override
        public Fragment getItem(int position) {
            return fragmentList.get(position);
        }

        @Nullable
        @Override
        public CharSequence getPageTitle(int position) {
            return titles.get(position);
        }
    });

    tblNews.setupWithViewPager(vpNews);
}

private void addData() {
    titles.add("關注");
    titles.add("熱門");
    titles.add("新聞");
    titles.add("影視");
    titles.add("段子");
    titles.add("教育");
    titles.add("房產");
    titles.add("汽車");
    titles.add("政治");
}

}

**

需要繼承的BaseActivity類

package com.bwie.newsmonth04.base;

import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity;

/**

  • Created by eric on 2018/9/20. */

public abstract class BaseActivity extends AppCompatActivity { protected Context mContext; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = this;

    previewAction();
    setContentView(getContentView());
    initView();
    initData();
    setListener();
    setMoreAction();
}

protected void previewAction() {

}

protected abstract int getContentView();

protected abstract void initView();

protected void initData() {

}

protected void setListener() {
}

protected void setMoreAction() {

}

}

**

News類

**

**顯示頁面的NewsFragment

package com.bwie.newsmonth04.fragment;

import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView;

import com.bwie.newsmonth04.R; import com.bwie.newsmonth04.adapter.NewsAdapter; import com.bwie.newsmonth04.bean.Banner; import com.bwie.newsmonth04.bean.News; import com.bwie.newsmonth04.constant.ServerUrl; import com.bwie.newsmonth04.db.NewsDao; import com.bwie.newsmonth04.utils.HttpUtils; import com.bwie.newsmonth04.utils.NetUtils; import com.bwie.xlistview.XListView; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList; import java.util.List;

public class NewsFragment extends Fragment { private int page = 1; private ViewPager vpBanner; private XListView xlvNews; private NewsAdapter adapter; private List<News.DataBean> list; private boolean isLoadMore = false; private NewsDao dao;

private Handler handler = new Handler();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_news, container, false);

    vpBanner = v.findViewById(R.id.vp_banner);
    xlvNews = v.findViewById(R.id.xlv_news);
    return v;

}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    initData();
    setListerner();
    getBanner();
    getNews();
}

private void setListerner() {
    xlvNews.setXListViewListener(new XListView.IXListViewListener() {
        @Override
        public void onRefresh() {
            page = 1;
            isLoadMore = false;
            getNews();
        }

        @Override
        public void onLoadMore() {
            page++;
            isLoadMore = true;
            getNews();
        }
    });
}

private void initData() {
    xlvNews.setPullLoadEnable(true);
    xlvNews.setPullRefreshEnable(true);
    dao = new NewsDao(getActivity());

    list = new ArrayList<>();
    adapter = new NewsAdapter(getActivity(), list);
    xlvNews.setAdapter(adapter);
}

private void getBanner() {
    new AsyncTask<String, Integer, String>() {

        @Override
        protected String doInBackground(String... strings) {
            return HttpUtils.getStringFromHttp(strings[0]);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson = new Gson();
            Banner banner = gson.fromJson(s, Banner.class);
            if (banner != null) {
                final List<Banner.DataBean> data = banner.getData();
                vpBanner.setAdapter(new PagerAdapter() {
                    @Override
                    public int getCount() {
                        return data.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 img = new ImageView(getActivity());
                        ImageLoader.getInstance().displayImage(data.get(position).getImg(), img);
                        container.addView(img);
                        return img;
                    }

                    @Override
                    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
                        container.removeView((View) object);
                    }
                });
            }
        }
    }.execute(ServerUrl.BANNER_URL);
}

private void getNews() {
    if (NetUtils.isNetworkAvailable(getActivity())) {
        getNewsFromHttp();
    } else {
        getNewsFromDB();
    }
}

private void getNewsFromDB() {
    List<News.DataBean> data = dao.queryByPage(page);
    if (data != null) {
        if (!isLoadMore) {
            list.clear();
        }
        list.addAll(data);
        adapter.notifyDataSetChanged();
    }
}

private void getNewsFromHttp() {
    String url = ServerUrl.NEWS_URL + page;
    new AsyncTask<String, Integer, String>() {

        @Override
        protected String doInBackground(String... strings) {
            return HttpUtils.getStringFromHttp(strings[0]);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    if (isLoadMore) {
                        xlvNews.stopLoadMore();
                    } else {
                        xlvNews.stopRefresh();
                    }
                }
            }, 200);
            Gson gson = new Gson();
            News news = gson.fromJson(s, News.class);
            if (news != null) {
                List<News.DataBean> data = news.getData();

                if (data != null) {
                    if (!isLoadMore) {
                        list.clear();
                    }
                    list.addAll(data);
                    adapter.notifyDataSetChanged();

                    dao.insert(list);
                }
            }
        }
    }.execute(url);
}

}

**

資料庫DBHepler類

**package com.bwie.newsmonth04.db;

import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;

/**

  • Created by eric on 2018/9/20. */

public class DBHelper extends SQLiteOpenHelper { private static final String DB_NAME = “news.db”; private static final int DB_VERSION = 1;

public DBHelper(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String sql = "create table " + NewsDao.TABLE_NAME + "(" +
            NewsDao.COLUMN_ID + " text primary key," +
            NewsDao.COLUMN_TITLE + " text," +
            NewsDao.COLUMN_DATE + " text," +
            NewsDao.COLUMN_CATEGORY + " text," +
            NewsDao.COLUMN_AUTHOR_NAME + " text," +
            NewsDao.COLUMN_URL + " text," +
            NewsDao.COLUMN_THUMBNAIL_01 + " text," +
            NewsDao.COLUMN_THUMBNAIL_02 + " text," +
            NewsDao.COLUMN_THUMBNAIL_03 + " text)";
    db.execSQL(sql);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

資料庫NewsDao

package com.bwie.newsmonth04.db;

import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.text.TextUtils;

import com.bwie.newsmonth04.bean.News;

import java.util.ArrayList; import java.util.List;

/**

  • Created by eric on 2018/9/20. */

public class NewsDao { public static final String TABLE_NAME = “news”; public static final String COLUMN_ID = “id”; public static final String COLUMN_TITLE = “title”; public static final String COLUMN_DATE = “_date”; public static final String COLUMN_CATEGORY = “category”; public static final String COLUMN_AUTHOR_NAME = “author_name”; public static final String COLUMN_URL = “url”; public static final String COLUMN_THUMBNAIL_01 = “thumbnail01”; public static final String COLUMN_THUMBNAIL_02 = “thumbnail02”; public static final String COLUMN_THUMBNAIL_03 = “thumbnail03”; private final SQLiteDatabase db;

public NewsDao(Context context) {
    DBHelper helper = new DBHelper(context);
    db = helper.getWritableDatabase();
}

public int insert(List<News.DataBean> news) {
    int count = 0;
    ContentValues values = new ContentValues();
    for (News.DataBean dataBean : news) {
        if (!hasId(dataBean.getUniquekey())) {
            values.put(COLUMN_ID, dataBean.getUniquekey());
            values.put(COLUMN_TITLE, dataBean.getTitle());
            values.put(COLUMN_DATE, dataBean.getDate());
            values.put(COLUMN_CATEGORY, dataBean.getCategory());
            values.put(COLUMN_AUTHOR_NAME, dataBean.getAuthorName());
            values.put(COLUMN_URL, dataBean.getUrl());
            values.put(COLUMN_THUMBNAIL_01, TextUtils.isEmpty(dataBean.getThumbnail01()) ? "" : dataBean.getThumbnail01());
            values.put(COLUMN_THUMBNAIL_02, TextUtils.isEmpty(dataBean.getThumbnail02()) ? "" : dataBean.getThumbnail02());
            values.put(COLUMN_THUMBNAIL_03, TextUtils.isEmpty(dataBean.getThumbnail03()) ? "" : dataBean.getThumbnail03());
            long l = db.insert(TABLE_NAME, null, values);
            if (l > 0) {
                count++;
            }
        }
    }
    return count;
}

public List<News.DataBean> queryByPage(int page) {
    List<News.DataBean> list = new ArrayList<>();
    String limit = (page - 1) * 30 + ", 30";
    Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null, limit);
    while (cursor.moveToNext()) {
        News.DataBean bean = new News.DataBean();
        bean.setUniquekey(cursor.getString(cursor.getColumnIndex(COLUMN_ID)));
        bean.setTitle(cursor.getString(cursor.getColumnIndex(COLUMN_TITLE)));
        bean.setCategory(cursor.getString(cursor.getColumnIndex(COLUMN_CATEGORY)));
        bean.setDate(cursor.getString(cursor.getColumnIndex(COLUMN_DATE)));
        bean.setAuthorName(cursor.getString(cursor.getColumnIndex(COLUMN_AUTHOR_NAME)));
        bean.setUrl(cursor.getString(cursor.getColumnIndex(COLUMN_URL)));
        String th1 = cursor.getString(cursor.getColumnIndex(COLUMN_THUMBNAIL_01));
        String th2 = cursor.getString(cursor.getColumnIndex(COLUMN_THUMBNAIL_02));
        String th3 = cursor.getString(cursor.getColumnIndex(COLUMN_THUMBNAIL_03));
        bean.setThumbnail01(TextUtils.isEmpty(th1) ? "" : th1);
        bean.setThumbnail02(TextUtils.isEmpty(th1) ? "" : th2);
        bean.setThumbnail03(TextUtils.isEmpty(th1) ? "" : th3);
        list.add(bean);
    }
    return list;
}

public boolean hasId(String id) {
    Cursor cursor = db.query(TABLE_NAME, null, COLUMN_ID + "=?", new String[]{id}, null, null, null);
    if (cursor.moveToNext()) {
        return true;
    }
    return false;
}

}

**

介面卡多條目

package com.bwie.newsmonth04.adapter;

import android.content.Context; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView;

import com.bwie.newsmonth04.R; import com.bwie.newsmonth04.bean.News; import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**

  • Created by eric on 2018/9/19. */

public class NewsAdapter extends BaseAdapter { private Context context; private List<News.DataBean> list; private static final int TYPE_ONE_PIC = 0; private static final int TYPE_TWO_PIC = 1; private static final int TYPE_THREE_PIC = 2;

public NewsAdapter(Context context, List<News.DataBean> list) {
    this.context = context;
    this.list = list;
}

@Override
public int getViewTypeCount() {
    return 3;
}

@Override
public int getItemViewType(int position) {
    News.DataBean bean = list.get(position);
    if (!TextUtils.isEmpty(bean.getThumbnail03())) {
        return TYPE_THREE_PIC;
    } else if (!TextUtils.isEmpty(bean.getThumbnail02())) {
        return TYPE_TWO_PIC;
    } else {
        return TYPE_ONE_PIC;
    }
}

@Override
public int getCount() {
    return list.size();
}

@Override
public Object getItem(int position) {
    return list.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder1 holder1 = null;
    ViewHolder2 holder2 = null;
    ViewHolder3 holder3 = null;

    int type = getItemViewType(position);

    switch (type) {
        case TYPE_ONE_PIC:
            if (convertView == null) {
                holder1 = new ViewHolder1();
                convertView = View.inflate(context, R.layout.item_news_01, null);
                holder1.txtTitle = convertView.findViewById(R.id.txt_title);
                holder1.imgLogo1 = convertView.findViewById(R.id.img_logo);
                convertView.setTag(holder1);
            } else {
                holder1 = (ViewHolder1) convertView.getTag();
            }

            holder1.txtTitle.setText(list.get(position).getTitle());
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail01(),
                    holder1.imgLogo1);
            break;

        case TYPE_TWO_PIC:
            if (convertView == null) {
                holder2 = new ViewHolder2();
                convertView = View.inflate(context, R.layout.item_news_02, null);
                holder2.txtTitle = convertView.findViewById(R.id.txt_title);
                holder2.imgLogo1 = convertView.findViewById(R.id.img_logo1);
                holder2.imgLogo2 = convertView.findViewById(R.id.img_logo2);
                convertView.setTag(holder2);
            } else {
                holder2 = (ViewHolder2) convertView.getTag();
            }

            holder2.txtTitle.setText(list.get(position).getTitle());
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail01(),
                    holder2.imgLogo1);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail02(),
                    holder2.imgLogo2);
            break;
        case TYPE_THREE_PIC:
            if (convertView == null) {
                holder3 = new ViewHolder3();
                convertView = View.inflate(context, R.layout.item_news_03, null);
                holder3.txtTitle = convertView.findViewById(R.id.txt_title);
                holder3.imgLogo1 = convertView.findViewById(R.id.img_logo1);
                holder3.imgLogo2 = convertView.findViewById(R.id.img_logo2);
                holder3.imgLogo3 = convertView.findViewById(R.id.img_logo3);
                convertView.setTag(holder3);
            } else {
                holder3 = (ViewHolder3) convertView.getTag();
            }

            holder3.txtTitle.setText(list.get(position).getTitle());
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail01(),
                    holder3.imgLogo1);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail02(),
                    holder3.imgLogo2);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail03(),
                    holder3.imgLogo3);
            break;
    }

    return convertView;
}

class ViewHolder1 {
    ImageView imgLogo1;
    TextView txtTitle;
}

class ViewHolder2 {
    ImageView imgLogo1;
    ImageView imgLogo2;
    TextView txtTitle;
}

class ViewHolder3 {
    ImageView imgLogo1;
    ImageView imgLogo2;
    ImageView imgLogo3;
    TextView txtTitle;
}

}

**

標題欄的資料類Channel

package com.bwie.newsmonth04.bean;

import java.util.List;

/**

  • Created by eric on 2018/9/20. */

public class Banner {

private String msg;
private int code;
private List<DataBean> data;

public String getMsg() {
    return msg;
}

public void setMsg(String msg) {
    this.msg = msg;
}

public int getCode() {
    return code;
}

public void setCode(int code) {
    this.code = code;
}

public List<DataBean> getData() {
    return data;
}

public void setData(List<DataBean> data) {
    this.data = data;
}

public static class DataBean {
    /**
     * uniquekey : 5eb6399ece021029a1a25bbfcdfdfbb4
     * title : 勇士超強戰術遇難題,高效打法第一又何妨?恰好撞火箭防守鐵桶陣
     * date : 2018-05-12 09:38
     * category : 體育
     * author_name : 鳳凰網
     * url : http://mini.eastday.com/mobile/180512093818317.html
     * img : http://09.imgmini.eastday.com/mobile/20180512/20180512093818_afba29fb6a2116e29ea41721c8a68f75_1_mwpm_03200403.jpg
     */

    private String uniquekey;
    private String title;
    private String date;
    private String category;
    private String url;
    private String img;

    public String getUniquekey() {
        return uniquekey;
    }

    public void setUniquekey(String uniquekey) {
        this.uniquekey = uniquekey;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }
}

}

**

EmptyFragment類

package com.bwie.newsmonth04.fragment;

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.TextView;

import com.bwie.newsmonth04.R;

public class EmptyFragment extends Fragment { private static final String ARG_PARAM1 = “param1”;

private TextView txtShow;


public EmptyFragment() {
}


public static EmptyFragment newInstance(String param) {
    EmptyFragment fragment = new EmptyFragment();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param);
    fragment.setArguments(args);
    return fragment;
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_empty, container, false);
    txtShow = v.findViewById(R.id.txt_show);
    return v;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Bundle bundle = getArguments();
    String str = bundle.getString(ARG_PARAM1);
    txtShow.setText(str);
}

}

**

**BaseApplication工具類

**package com.bwie.newsmonth04;

import android.app.Application;

import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

/**

  • Created by eric on 2018/9/20. */

public class BaseApplication extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this) .build(); ImageLoader.getInstance().init(configuration); } }

**

佈局檔案

**

輪播圖佈局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
    android:id="@+id/vp_splash"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<Button
    android:id="@+id/btn_goto_main"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="30dp"
    android:text="進入頁面"
    android:visibility="gone" />

**

登入佈局 **

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:id="@+id/et_username"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="請輸入使用者名稱" />

<EditText
    android:id="@+id/et_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="請輸入密碼" />

<Button
    android:id="@+id/btn_login"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="登入" />
**

顯示佈局

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TabLayout
    android:id="@+id/tbl_news"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"></android.support.design.widget.TabLayout>

<android.support.v4.view.ViewPager
    android:id="@+id/vp_news"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></android.support.v4.view.ViewPager>

**

多條目顯示佈局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
    android:id="@+id/vp_banner"
    android:layout_width="match_parent"
    android:layout_height="200dp"></android.support.v4.view.ViewPager>

<com.bwie.xlistview.XListView
    android:id="@+id/xlv_news"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"></com.bwie.xlistview.XListView>

** **

**顯示佈局

<?xml version="1.0" encoding="utf-8"?>
<TextView
    android:id="@+id/txt_show"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

多條目佈局

<?xml version="1.0" encoding="utf-8"?>
<ImageView
    android:id="@+id/img_logo"
    android:layout_width="75dp"
    android:layout_height="75dp" />

<TextView
    android:id="@+id/txt_title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_marginLeft="5dp" />