使用ListView与GridView切换:
实现效果:
整体XML布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:orientation="vertical" >
<ListView
android:id="@+id/lv_menu_groupphoto_listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:textAlignment="1"
/>
<GridView
android:id="@+id/gv_menu_groupphoto_gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="2"
></GridView>
</FrameLayout>
<?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="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ImageView
android:id="@+id/iv_list_groupphoto_ImageView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5"
android:src="@drawable/ic_launcher"
/>
<TextView
android:id="@+id/tv_list_groupphoto_TextView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="this is a textview"
android:gravity="center"
android:textSize="22sp"
/>
</LinearLayout>
</LinearLayout>
实现代码:
可分为 绘图, 从网络获取数据,以及数据解析,太简单,无力写注释。。。。
package com.example.zhihuibj.BaseMenuDetailPager;
import java.lang.reflect.Type;
import java.util.ArrayList;
import com.example.zhihuibj.R;
import com.example.zhihuibj.domain.PhotoData;
import com.example.zhihuibj.domain.PhotoData.PhotoInfo;
import com.example.zhihuibj.global.GlobalContants;
import com.google.gson.Gson;
import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
/*
* 菜单详情页-组图
*/
public class PhotoMenuDetailPager extends BaseMenuDetailPager{
private ListView mListView;
private GridView mGridView;
private ArrayList<PhotoInfo> mphotolist;
private PhotoAdapter mAdapter;
public PhotoMenuDetailPager(Activity mActivity) {
super(mActivity);
// TODO Auto-generated constructor stub
}
@Override
public View initView() {
View mView=View.inflate(mActivity, R.layout.menu_groupphoto, null);
mListView=(ListView) mView.findViewById(R.id.lv_menu_groupphoto_listView);
mGridView=(GridView) mView.findViewById(R.id.gv_menu_groupphoto_gridview);
return mView;
}
@Override
public void initData() {
PhotoMenuGetDataFromService();
}
/*
* 获取网路数据
* url还不确定
*/
private void PhotoMenuGetDataFromService() {
HttpUtils mUtils= new HttpUtils();
mUtils.send(HttpMethod.GET, GlobalContants.PHOTOS_URL, new RequestCallBack<String>(){
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
String result =(String) responseInfo.result;
parseData(result);
}
@Override
public void onFailure(HttpException error, String msg) {
Toast.makeText(mActivity, msg, Toast.LENGTH_SHORT).show();
error.printStackTrace();
System.out.println("TabDetailPager : 解析错误!!!");
}
});
}
/*
* 解析数据
*
*/
public void parseData(String result)
{
Gson gson = new Gson();
PhotoData data = gson.fromJson(result, PhotoData.class);
mphotolist=data.data.news;
if(mphotolist!=null)
{
mAdapter= new PhotoAdapter();
mGridView.setAdapter(new PhotoAdapter());
}
}
public class ViewHoder{
public TextView vh_mTextView;
public ImageView vh_mImageView;
}
public class PhotoAdapter extends BaseAdapter{
private ViewHoder mViewHoder;
private BitmapUtils mbitmaputils;
public PhotoAdapter(){
mbitmaputils = new BitmapUtils(mActivity);
// mbitmaputils.configDefaultLoadingImage(R.drawable.ic_launcher);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mphotolist.size();
}
@Override
public PhotoInfo getItem(int position) {
// TODO Auto-generated method stub
return mphotolist.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
/*
* 绘图
*/
if(convertView==null)
{
convertView = View.inflate(mActivity, R.layout.list_groupphoto, null);
mViewHoder=new ViewHoder();
mViewHoder.vh_mTextView=(TextView) convertView.findViewById(R.id.tv_list_groupphoto_TextView);
mViewHoder.vh_mImageView=(ImageView) convertView.findViewById(R.id.iv_list_groupphoto_ImageView);
convertView.setTag(mViewHoder);
}
else
{
mViewHoder=(ViewHoder) convertView.getTag();
}
/*
* 放数据
*/
PhotoInfo item=getItem(position);
mViewHoder.vh_mTextView.setText(item.title);
mbitmaputils.display(mViewHoder.vh_mImageView, item.listimage.replace("10.0.2.2", "192.168.56.1"));
return convertView;
}
}
}