MainActivity页面布局
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:id="@+id/dl"
android:layout_width=“match_parent”
android:layout_height=“match_parent”>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<TextView
android:id="@+id/txt_concern"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
android:text="关注" />
<TextView
android:id="@+id/txt_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
android:text="消息" />
<TextView
android:id="@+id/txt_my"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
android:text="我的" />
</LinearLayout>
<FrameLayout
android:id="@+id/fl_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/ll_bottom"></FrameLayout>
</RelativeLayout>
<LinearLayout
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#FFFFFF"
android:orientation="vertical">
<ListView
android:id="@+id/lv_drawer"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
MainActivity页面
package com.bwie.newsmonth07;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import com.bwie.newsmonth07.adapter.LeftDrawerAdapter;
import com.bwie.newsmonth07.base.BaseActivity;
import com.bwie.newsmonth07.fragment.ConcernFragment;
import com.bwie.newsmonth07.fragment.MessageFragment;
import com.bwie.newsmonth07.fragment.MyFragment;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends BaseActivity implements View.OnClickListener {
private static final String TAG = “MainActivity”;
private DrawerLayout dl;
private ListView lvDrawer;
private TextView txtConcern;
private TextView txtMessage;
private TextView txtMy;
private List<String> leftList;
private LeftDrawerAdapter adapter;
private ConcernFragment cf;
private MessageFragment msgf;
private MyFragment myf;
private FragmentManager manager;
@Override
protected int getContentView() {
return R.layout.activity_main;
}
@Override
protected void initView() {
dl = findViewById(R.id.dl);
lvDrawer = findViewById(R.id.lv_drawer);
txtConcern = findViewById(R.id.txt_concern);
txtMessage = findViewById(R.id.txt_message);
txtMy = findViewById(R.id.txt_my);
}
@Override
protected void initData() {
super.initData();
leftList = new ArrayList<>();
leftList.add("所有收件箱");
leftList.add("所有未读");
leftList.add("所有红旗");
adapter = new LeftDrawerAdapter(this, leftList);
lvDrawer.setAdapter(adapter);
cf = new ConcernFragment();
msgf = new MessageFragment();
myf = new MyFragment();
manager = getSupportFragmentManager();
manager.beginTransaction()
.add(R.id.fl_content, cf)
.add(R.id.fl_content, msgf)
.add(R.id.fl_content, myf)
.hide(msgf)
.hide(myf)
.commit();
}
@Override
protected void setListener() {
super.setListener();
txtConcern.setOnClickListener(this);
txtMessage.setOnClickListener(this);
txtMy.setOnClickListener(this);
dl.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(@NonNull View drawerView) {
Log.i(TAG, "抽屉打开");
}
@Override
public void onDrawerClosed(@NonNull View drawerView) {
Log.i(TAG, "抽屉关闭");
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.txt_concern:
manager.beginTransaction()
.show(cf)
.hide(msgf)
.hide(myf)
.commit();
break;
case R.id.txt_message:
manager.beginTransaction()
.hide(cf)
.show(msgf)
.hide(myf)
.commit();
break;
case R.id.txt_my:
manager.beginTransaction()
.hide(cf)
.hide(msgf)
.show(myf)
.commit();
break;
}
}
}
Baseapplication
package com.bwie.newsmonth07;
import android.app.Application;
import android.graphics.Bitmap;
import android.os.Environment;
import com.nostra13.universalimageloader.cache.disc.DiskCache;
import com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import java.io.File;
import java.io.IOException;
/**
- Created by eric on 2018/9/17.
*/
public class BaseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
File cacheFifle = null;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File rootSD = Environment.getExternalStorageDirectory();
cacheFifle = new File(rootSD, "imgs");
if (!cacheFifle.exists()) {
cacheFifle.mkdirs();
}
}
DiskCache diskCache = null;
try {
diskCache = new LruDiskCache(cacheFifle, new Md5FileNameGenerator(), 50 * 1024 * 1024);
} catch (IOException e) {
e.printStackTrace();
}
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheOnDisk(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)
.diskCache(diskCache)
.defaultDisplayImageOptions(options)
.build();
ImageLoader.getInstance().init(configuration);
}
}
Httputils
package com.bwie.newsmonth07.utils;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
/**
- Created by eric on 2018/9/17.
*/
public class HttpUtils {
public static String getStringFromHttp(String urlString) {
String result = “”;
try {
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(false);
connection.setConnectTimeout(5000);
connection.setRequestMethod("GET");
connection.connect();
if (connection.getResponseCode() == 200) {
InputStream is = connection.getInputStream();
result = getStringFromInputStream(is);
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
private static String getStringFromInputStream(InputStream is) {
String result = "";
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int length = -1;
byte[] buffer = new byte[1024];
while ((length = is.read(buffer, 0, buffer.length)) != -1) {
baos.write(buffer, 0, length);
baos.flush();
}
result = baos.toString();
baos.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}
Netutils
package com.bwie.newsmonth07.utils;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
/**
- Created by eric on 2018/9/17.
*/
public class NetUtils {
/**
* 判断网络状态是否可用
*
* @param context
* @return
*/
public static boolean isNetAvailable(Context context) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if (info == null) {
return false;
}
return info.isAvailable();
}
}
concerfragment
package com.bwie.newsmonth07.fragment;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import com.bwie.newsmonth07.R;
import com.bwie.newsmonth07.adapter.NewsAdapter;
import com.bwie.newsmonth07.base.BaseFragment;
import com.bwie.newsmonth07.bean.News;
import com.bwie.newsmonth07.bean.NewsDao;
import com.bwie.newsmonth07.utils.HttpUtils;
import com.bwie.newsmonth07.utils.NetUtils;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.ArrayList;
import java.util.List;
public class ConcernFragment extends BaseFragment {
private static final String TAG = “ConcernFragment”;
private PullToRefreshListView plvNews;
private List<News.DataBean> list;
private NewsAdapter adapter;
private NewsDao dao;
public static final String URL = "http://www.xieast.com/api/news/news.php?page=";
private int page = 1;
private boolean isLoadMore = false;
private static final int FLAG = 123;
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();
News news = gson.fromJson(result, News.class);
if (news != null) {
List<News.DataBean> data = news.getData();
if (data != null) {
// 添加到数据库中
int i = dao.insert(data);
if (i > 0) {
Log.i(TAG, "插入了: " + i + "条数据");
}
if (!isLoadMore) {
list.clear();
}
list.addAll(data);
adapter.notifyDataSetChanged();
}
}
postDelayed(new Runnable() {
@Override
public void run() {
plvNews.onRefreshComplete();
}
}, 2000);
break;
}
}
};
@Override
protected int getContentView() {
return R.layout.fragment_concern;
}
@Override
protected void initView(View v) {
plvNews = v.findViewById(R.id.plv_news);
}
@Override
protected void initData() {
super.initData();
plvNews.setMode(PullToRefreshBase.Mode.BOTH);
list = new ArrayList<>();
adapter = new NewsAdapter(mContext, list);
plvNews.setAdapter(adapter);
dao = new NewsDao(mContext);
}
@Override
protected void setMoreAction() {
super.setMoreAction();
getData();
}
/**
* 获取数据,从网络或数据库
*/
private void getData() {
// 有网从网取,没网数据库
if (NetUtils.isNetAvailable(mContext)) {
getDataFromHttp();
} else {
getDataFromDB();
}
}
private void getDataFromDB() {
List<News.DataBean> dataBeans = dao.queryPage(page);
if (dataBeans != null) {
if (!isLoadMore) {
list.clear();
}
list.addAll(dataBeans);
adapter.notifyDataSetChanged();
}
handler.postDelayed(new Runnable() {
@Override
public void run() {
plvNews.onRefreshComplete();
}
}, 2000);
}
private void getDataFromHttp() {
new Thread(new Runnable() {
@Override
public void run() {
String result = HttpUtils.getStringFromHttp(URL + page);
Message msg = Message.obtain();
msg.what = FLAG;
msg.obj = result;
handler.sendMessage(msg);
}
}).start();
}
@Override
protected void setListener() {
super.setListener();
plvNews.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
page = 1;
isLoadMore = false;
getData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page++;
isLoadMore = true;
getData();
}
});
}
}
messagefragment
package com.bwie.newsmonth07.fragment;
import android.view.View;
import com.bwie.newsmonth07.R;
import com.bwie.newsmonth07.base.BaseFragment;
public class MessageFragment extends BaseFragment {
@Override
protected int getContentView() {
return R.layout.fragment_message;
}
@Override
protected void initView(View v) {
}
}
Myfragment
package com.bwie.newsmonth07.fragment;
import android.view.View;
import com.bwie.newsmonth07.R;
import com.bwie.newsmonth07.base.BaseFragment;
public class MyFragment extends BaseFragment {
@Override
protected int getContentView() {
return R.layout.fragment_my;
}
@Override
protected void initView(View v) {
}
}
Dbhelper
package com.bwie.newsmonth07.fragment;
import android.view.View;
import com.bwie.newsmonth07.R;
import com.bwie.newsmonth07.base.BaseFragment;
public class MyFragment extends BaseFragment {
@Override
protected int getContentView() {
return R.layout.fragment_my;
}
@Override
protected void initView(View v) {
}
}
News
package com.bwie.newsmonth07.fragment;
import android.view.View;
import com.bwie.newsmonth07.R;
import com.bwie.newsmonth07.base.BaseFragment;
public class MyFragment extends BaseFragment {
@Override
protected int getContentView() {
return R.layout.fragment_my;
}
@Override
protected void initView(View v) {
}
}
NewsDao
package com.bwie.newsmonth07.bean;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.text.TextUtils;
import com.bwie.newsmonth07.db.DBHelper;
import java.util.ArrayList;
import java.util.List;
/**
- Created by eric on 2018/9/17.
*/
public class NewsDao {
private final SQLiteDatabase db;
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 = "thumbnail_01";
public static final String COLUMN_THUMBNAIL_02 = "thumbnail_02";
public static final String COLUMN_THUMBNAIL_03 = "thumbnail_03";
public NewsDao(Context context) {
DBHelper helper = new DBHelper(context);
db = helper.getWritableDatabase();
}
/**
* 插入数据
*
* @param list
* @return
*/
public int insert(List<News.DataBean> list) {
int count = 0;
ContentValues values = new ContentValues();
for (News.DataBean bean : list) {
/**
* 有这条数据就不作操作,没有的时候才插入
*/
if (!hasId(bean.getUniquekey())) {
values.put(COLUMN_ID, bean.getUniquekey());
values.put(COLUMN_TITLE, bean.getTitle());
values.put(COLUMN_DATE, bean.getDate());
values.put(COLUMN_CATEGORY, bean.getCategory());
values.put(COLUMN_AUTHOR_NAME, bean.getAuthorName());
values.put(COLUMN_URL, bean.getUrl());
values.put(COLUMN_THUMBNAIL_01, TextUtils.isEmpty(bean.getThumbnail01()) ? "" : bean.getThumbnail01());
values.put(COLUMN_THUMBNAIL_02, TextUtils.isEmpty(bean.getThumbnail02()) ? "" : bean.getThumbnail02());
values.put(COLUMN_THUMBNAIL_03, TextUtils.isEmpty(bean.getThumbnail03()) ? "" : bean.getThumbnail03());
long l = db.insert(TABLE_NAME, null, values);
if (l > 0) {
count++;
}
}
}
return count;
}
/**
* 查询数据库中有没有这条id的数据
*
* @param id
* @return
*/
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;
}
/**
* 查询所有的数据
*
* @return
*/
public List<News.DataBean> queryAll() {
List<News.DataBean> list = new ArrayList<>();
Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
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.setDate(cursor.getString(cursor.getColumnIndex(COLUMN_DATE)));
bean.setAuthorName(cursor.getString(cursor.getColumnIndex(COLUMN_AUTHOR_NAME)));
bean.setCategory(cursor.getString(cursor.getColumnIndex(COLUMN_CATEGORY)));
bean.setUrl(cursor.getString(cursor.getColumnIndex(COLUMN_URL)));
bean.setThumbnail01(cursor.getString(cursor.getColumnIndex(COLUMN_THUMBNAIL_01)));
bean.setThumbnail02(cursor.getString(cursor.getColumnIndex(COLUMN_THUMBNAIL_02)));
bean.setThumbnail03(cursor.getString(cursor.getColumnIndex(COLUMN_THUMBNAIL_03)));
list.add(bean);
}
return list;
}
/**
* 根据页数查询出数据
* @param page
* @return
*/
public List<News.DataBean> queryPage(int page) {
// page=1 ==> 0-29, limit 0, 30
// page=2 ==> 30-59 limit 30, 30
String limit = (page - 1) * 30 + “, 30”;
List<News.DataBean> list = new ArrayList<>();
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.setDate(cursor.getString(cursor.getColumnIndex(COLUMN_DATE)));
bean.setAuthorName(cursor.getString(cursor.getColumnIndex(COLUMN_AUTHOR_NAME)));
bean.setCategory(cursor.getString(cursor.getColumnIndex(COLUMN_CATEGORY)));
bean.setUrl(cursor.getString(cursor.getColumnIndex(COLUMN_URL)));
bean.setThumbnail01(cursor.getString(cursor.getColumnIndex(COLUMN_THUMBNAIL_01)));
bean.setThumbnail02(cursor.getString(cursor.getColumnIndex(COLUMN_THUMBNAIL_02)));
bean.setThumbnail03(cursor.getString(cursor.getColumnIndex(COLUMN_THUMBNAIL_03)));
list.add(bean);
}
return list;
}
}
baseactivity
package com.bwie.newsmonth07.base;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
/**
- Created by eric on 2018/9/17.
*/
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
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() {
}
}
basefragment
package com.bwie.newsmonth07.base;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
- Created by eric on 2018/9/17.
*/
public abstract class BaseFragment extends Fragment {
protected Context mContext;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(getContentView(), container, false);
initView(v);
return v;
}
protected abstract int getContentView();
protected abstract void initView(View v);
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (mContext == null) {
mContext = getActivity();
}
initData();
setListener();
setMoreAction();
}
protected void initData() {
}
protected void setListener() {
}
protected void setMoreAction() {
}
}
leftdrawerAdapter
package com.bwie.newsmonth07.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.bwie.newsmonth07.R;
import java.util.List;
/**
- Created by eric on 2018/9/17.
*/
public class LeftDrawerAdapter extends BaseAdapter {
private Context context;
private List list;
public LeftDrawerAdapter(Context context, List<String> list) {
this.context = context;
this.list = list;
}
@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) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = View.inflate(context, R.layout.item_drawer_list, null);
holder.txtTitle = convertView.findViewById(R.id.txt_left_title);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtTitle.setText(list.get(position));
return convertView;
}
class ViewHolder {
TextView txtTitle;
}
}
newsAdapter
package com.bwie.newsmonth07.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.newsmonth07.R;
import com.bwie.newsmonth07.bean.News;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
/**
- Created by eric on 2018/9/17.
*/
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 getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@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 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_01);
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_logo_01);
holder2.imgLogo2 = convertView.findViewById(R.id.img_logo_02);
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_logo_01);
holder3.imgLogo2 = convertView.findViewById(R.id.img_logo_02);
holder3.imgLogo3 = convertView.findViewById(R.id.img_logo_03);
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 {
TextView txtTitle;
ImageView imgLogo1;
}
class ViewHolder2 {
TextView txtTitle;
ImageView imgLogo1;
ImageView imgLogo2;
}
class ViewHolder3 {
TextView txtTitle;
ImageView imgLogo1;
ImageView imgLogo2;
ImageView imgLogo3;
}
}
频道布局
fragment_concern
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/plv_news"
android:layout_width="match_parent"
android:layout_height="wrap_content"></com.handmark.pulltorefresh.library.PullToRefreshListView>
fragment_message
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="消息页面" />
fragment_my
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="我的页面" />
item_drawer_list.xml
<?xml version="1.0" encoding="utf-8"?><ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/txt_left_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp" />
item_news_01.xml
<?xml version="1.0" encoding="utf-8"?><ImageView
android:id="@+id/img_logo_01"
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="10dp" />
item_news_02
<?xml version="1.0" encoding="utf-8"?><TextView
android:id="@+id/txt_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3">
<ImageView
android:id="@+id/img_logo_01"
android:layout_width="0dp"
android:layout_height="75dp"
android:layout_weight="1"
android:padding="5dp" />
<ImageView
android:id="@+id/img_logo_02"
android:layout_width="0dp"
android:layout_height="75dp"
android:layout_weight="1"
android:padding="5dp" />
</LinearLayout>
item_news_03
<?xml version="1.0" encoding="utf-8"?><TextView
android:id="@+id/txt_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_logo_01"
android:layout_width="0dp"
android:layout_height="75dp"
android:layout_weight="1"
android:padding="5dp" />
<ImageView
android:id="@+id/img_logo_02"
android:layout_width="0dp"
android:layout_height="75dp"
android:layout_weight="1"
android:padding="5dp" />
<ImageView
android:id="@+id/img_logo_03"
android:layout_width="0dp"
android:layout_height="75dp"
android:layout_weight="1"
android:padding="5dp" />
</LinearLayout>