昨天我们一起学习了一下一号店(IOS版本)(仿一号店APP商品分类效果开发IOS)商品分类效果编写今天我们一起来看一下Android版本上面的实现。其实我们的实现的具体思路差不多。总体先搞定一级分类,然后二级我们这边使用GridView布局。然后点击一级分类的每一项的时候,动态显示以及隐藏相关的二级分类数据。现在我们来看一下实现的效果.
然后这边还有一点需要介绍的是ViewGrounp的一个动画android:animateLayoutchanges属性。
这个属性设置这样就自动地按照默认方式来对要移除或添加的View,还有Group中的其他View进行动画。
下面一起来看一下代码实现.
(一)布局文件:
<span style="font-size:18px;"><?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" >
<include layout="@layout/top_bar_one_layout" />
<FrameLayout
android:id="@+id/frame_content"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ScrollView
android:scrollbars="none"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/line_1"
android:layout_width="match_parent"
android:layout_height="108dip"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/linear_1"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_1"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginBottom="7dip"
android:text="类别" />
</LinearLayout>
<include layout="@layout/line_option_vertical_category_layout" />
<LinearLayout
android:id="@+id/linear_2"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_2"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="7dip"
android:gravity="center"
android:text="类别" />
</LinearLayout>
<include layout="@layout/line_option_vertical_category_layout" />
<LinearLayout
android:id="@+id/linear_3"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_3"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="7dip"
android:gravity="center"
android:text="类别" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="false"
android:orientation="vertical"
android:visibility="gone" >
<include
layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<include
android:id="@+id/hide_divider_1"
layout="@layout/line_option_category_layout" />
<LinearLayout
android:id="@+id/line_2"
android:layout_width="match_parent"
android:layout_height="108dip"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/linear_4"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_4"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="7dip"
android:gravity="center"
android:text="类别" />
</LinearLayout>
<include layout="@layout/line_option_vertical_category_layout" />
<LinearLayout
android:id="@+id/linear_5"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_5"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="7dip"
android:gravity="center"
android:text="类别" />
</LinearLayout>
<include layout="@layout/line_option_vertical_category_layout" />
<LinearLayout
android:id="@+id/linear_6"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_6"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="7dip"
android:gravity="center"
android:text="类别" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<include
android:id="@+id/hide_divider_2"
layout="@layout/line_option_category_layout" />
<LinearLayout
android:id="@+id/line_3"
android:layout_width="match_parent"
android:layout_height="108dip"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/linear_7"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_7"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_margin="12dip"
android:layout_weight="1"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_7"
android:layout_width="match_parent"
android:layout_marginBottom="7dip"
android:layout_height="wrap_content"
android:gravity="center"
android:text="类别" />
</LinearLayout>
<include layout="@layout/line_option_vertical_category_layout" />
<LinearLayout
android:id="@+id/linear_8"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_8"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="7dip"
android:gravity="center"
android:text="类别" />
</LinearLayout>
<include layout="@layout/line_option_vertical_category_layout" />
<LinearLayout
android:id="@+id/linear_9"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_9"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_9"
android:layout_width="match_parent"
android:layout_marginBottom="7dip"
android:layout_height="wrap_content"
android:gravity="center"
android:text="类别" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_9"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_9"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<include
android:id="@+id/hide_divider_3"
layout="@layout/line_option_category_layout" />
<LinearLayout
android:id="@+id/line_4"
android:layout_width="match_parent"
android:layout_height="108dip"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/linear_10"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_10"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_10"
android:layout_width="match_parent"
android:layout_marginBottom="7dip"
android:layout_height="wrap_content"
android:gravity="center"
android:text="类别" />
</LinearLayout>
<include layout="@layout/line_option_vertical_category_layout" />
<LinearLayout
android:id="@+id/linear_11"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_11"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_11"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginBottom="7dip"
android:text="类别" />
</LinearLayout>
<include layout="@layout/line_option_vertical_category_layout" />
<LinearLayout
android:id="@+id/linear_12"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_12"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="12dip"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_marginBottom="5dip"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_12"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="7dip"
android:gravity="center"
android:text="类别" />
</LinearLayout>
</LinearLayout>
<include
android:id="@+id/hide_divider_4"
layout="@layout/line_option_category_layout" />
<LinearLayout
android:id="@+id/hide_10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_11"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_11"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
<LinearLayout
android:id="@+id/hide_12"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<include layout="@layout/line_option_category_layout" />
<com.zttmall.widget.MyGridView
android:id="@+id/gv_12"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66cccccc"
android:listSelector="@color/transparent"
android:numColumns="3" >
</com.zttmall.widget.MyGridView>
</LinearLayout>
</LinearLayout>
</ScrollView>
</FrameLayout>
<FrameLayout
android:id="@+id/prompt_framelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="gone" >
<include layout="@layout/loading" />
<include layout="@layout/empty" />
<include layout="@layout/error" />
</FrameLayout>
</LinearLayout></span>
(二)解决GridView与ScrollView的冲突问题
package com.zttmall.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;
public class CustomGridView extends GridView {
public CustomGridView(Context context) {
super(context);
}
public CustomGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
(三).具体实现代码如下:
package com.zttmall.fragment;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import tv.pps.modules.imagelogic.ImageLogic;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.FrameLayout;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.zttmall.BaseFragment;
import com.zttmall.ZTTMallApplication;
import com.zttmall.adapter.SubCategoryAdapter;
import com.zttmall.common.DefineView;
import com.zttmall.common.DeliverConsts;
import com.zttmall.common.RequestURL;
import com.zttmall.listlogic.ListFetcher;
import com.zttmall.listlogic.ListSimpleParse;
import com.zttmall.model.category.CategoryModel;
import com.zttmall.model.category.ShowCategoryModel;
import com.zttmall.model.category.SubCategoryModel;
import com.zttmall.ui.ClassifyThreeCategoryActivity;
import com.zttmall.ui.R;
import com.zttmall.utils.Log;
/**
* 商品分类功能
*
* @author jiangqq
*
*/
public class ClassifyFragment extends BaseFragment implements DefineView {
private View mView;
private TextView tab_bar_title_one;
private ShowCategoryModel model;
private FrameLayout frame_content;
private FrameLayout prompt_framelayout;
private LinearLayout loading;
private LinearLayout empty;
private LinearLayout error;
String descString;
private ListFetcher mListWorker;
private HashMap<String, String> requestMap;
private SubCategoryAdapter mSubCategoryAdapter;
ImageLogic mImageLogic;
private List<LinearLayout> linearList = new ArrayList<LinearLayout>();
private List<ImageView> ivList = new ArrayList<ImageView>();
private List<TextView> tvList = new ArrayList<TextView>();
private List<LinearLayout> hideList = new ArrayList<LinearLayout>();
private List<GridView> gvList = new ArrayList<GridView>();
private Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == ListFetcher.LIST_OK) {
getDataOk();
} else if (msg.what == ListFetcher.LIST_ERROR) {
getDataError();
}
};
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (mView == null) {
mView = inflater.inflate(R.layout.classify_fragment_layout,
container, false);
initView();
initValidata();
initListener();
bindData();
}
return mView;
}
@Override
public void initView() {
tab_bar_title_one = (TextView) mView
.findViewById(R.id.tab_bar_title_one);
tab_bar_title_one.setText(R.string.string_classify_name);
frame_content = (FrameLayout) mView.findViewById(R.id.frame_content);
prompt_framelayout = (FrameLayout) mView
.findViewById(R.id.prompt_framelayout);
loading = (LinearLayout) mView.findViewById(R.id.loading);
empty = (LinearLayout) mView.findViewById(R.id.empty);
error = (LinearLayout) mView.findViewById(R.id.error);
initViewList();
}
public void initViewList() {
/*
* line1 = (LinearLayout) mView.findViewById(R.id.line_1); line2 =
* (LinearLayout) mView.findViewById(R.id.line_2); line3 =
* (LinearLayout) mView.findViewById(R.id.line_3); line4 =
* (LinearLayout) mView.findViewById(R.id.line_4);
*/
linearList.add((LinearLayout) mView.findViewById(R.id.linear_1));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_2));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_3));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_4));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_5));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_6));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_7));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_8));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_9));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_10));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_11));
linearList.add((LinearLayout) mView.findViewById(R.id.linear_12));
ivList.add((ImageView) mView.findViewById(R.id.iv_1));
ivList.add((ImageView) mView.findViewById(R.id.iv_2));
ivList.add((ImageView) mView.findViewById(R.id.iv_3));
ivList.add((ImageView) mView.findViewById(R.id.iv_4));
ivList.add((ImageView) mView.findViewById(R.id.iv_5));
ivList.add((ImageView) mView.findViewById(R.id.iv_6));
ivList.add((ImageView) mView.findViewById(R.id.iv_7));
ivList.add((ImageView) mView.findViewById(R.id.iv_8));
ivList.add((ImageView) mView.findViewById(R.id.iv_9));
ivList.add((ImageView) mView.findViewById(R.id.iv_10));
ivList.add((ImageView) mView.findViewById(R.id.iv_11));
ivList.add((ImageView) mView.findViewById(R.id.iv_12));
tvList.add((TextView) mView.findViewById(R.id.tv_1));
tvList.add((TextView) mView.findViewById(R.id.tv_2));
tvList.add((TextView) mView.findViewById(R.id.tv_3));
tvList.add((TextView) mView.findViewById(R.id.tv_4));
tvList.add((TextView) mView.findViewById(R.id.tv_5));
tvList.add((TextView) mView.findViewById(R.id.tv_6));
tvList.add((TextView) mView.findViewById(R.id.tv_7));
tvList.add((TextView) mView.findViewById(R.id.tv_8));
tvList.add((TextView) mView.findViewById(R.id.tv_9));
tvList.add((TextView) mView.findViewById(R.id.tv_10));
tvList.add((TextView) mView.findViewById(R.id.tv_11));
tvList.add((TextView) mView.findViewById(R.id.tv_12));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_1));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_2));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_3));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_4));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_5));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_6));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_7));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_8));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_9));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_10));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_11));
hideList.add((LinearLayout) mView.findViewById(R.id.hide_12));
gvList.add((GridView) mView.findViewById(R.id.gv_1));
gvList.add((GridView) mView.findViewById(R.id.gv_2));
gvList.add((GridView) mView.findViewById(R.id.gv_3));
gvList.add((GridView) mView.findViewById(R.id.gv_4));
gvList.add((GridView) mView.findViewById(R.id.gv_5));
gvList.add((GridView) mView.findViewById(R.id.gv_6));
gvList.add((GridView) mView.findViewById(R.id.gv_7));
gvList.add((GridView) mView.findViewById(R.id.gv_8));
gvList.add((GridView) mView.findViewById(R.id.gv_9));
gvList.add((GridView) mView.findViewById(R.id.gv_10));
gvList.add((GridView) mView.findViewById(R.id.gv_11));
gvList.add((GridView) mView.findViewById(R.id.gv_12));
}
@Override
public void initValidata() {
// TODO Auto-generated method stub
mImageLogic = ImageLogic.create(getActivity());
mImageLogic.configBitmapMaxHeight(120);
mImageLogic.configBitmapMaxWidth(120);
mListWorker = new ListFetcher(getActivity(),
ListSimpleParse.DEFAULT_JSON_CATEGORY, mHandler);
mListWorker.loadJsonDataList(RequestURL.CATEGORY_URL);
mSubCategoryAdapter = new SubCategoryAdapter(getActivity());
frame_content.setVisibility(View.GONE);
prompt_framelayout.setVisibility(View.VISIBLE);
loading.setVisibility(View.VISIBLE);
empty.setVisibility(View.GONE);
error.setVisibility(View.GONE);
}
@Override
public void initListener() {
// TODO Auto-generated method stub
error.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mListWorker.loadJsonDataList(RequestURL.CATEGORY_URL);
frame_content.setVisibility(View.GONE);
prompt_framelayout.setVisibility(View.VISIBLE);
loading.setVisibility(View.VISIBLE);
empty.setVisibility(View.GONE);
error.setVisibility(View.GONE);
}
});
for (int i = 0; i < linearList.size(); i++) {
linearList.get(i).setOnClickListener(
new MyCustomerOnclickListener());
}
}
@Override
public void bindData() {
// TODO Auto-generated method stub
}
@Override
public void getPageData() {
// TODO Auto-generated method stub
}
@Override
public void getDataOk() {
// TODO Auto-generated method stub
HashMap<String, Object> tempMap = ZTTMallApplication.getInstance()
.getTempMap();
model = (ShowCategoryModel) tempMap
.get(DeliverConsts.KEY_CATEGORY_MODEL);
if (model != null && model.getCode().equals("1")
&& "SUCCESS".equals(model.getMsg())) {
if (model.getData() != null && model.getData().size() > 0) {
showData(model);
frame_content.setVisibility(View.VISIBLE);
prompt_framelayout.setVisibility(View.GONE);
loading.setVisibility(View.GONE);
empty.setVisibility(View.GONE);
error.setVisibility(View.GONE);
} else {
frame_content.setVisibility(View.GONE);
prompt_framelayout.setVisibility(View.VISIBLE);
loading.setVisibility(View.GONE);
empty.setVisibility(View.VISIBLE);
error.setVisibility(View.GONE);
}
} else {
frame_content.setVisibility(View.GONE);
prompt_framelayout.setVisibility(View.VISIBLE);
loading.setVisibility(View.GONE);
empty.setVisibility(View.GONE);
error.setVisibility(View.VISIBLE);
}
}
@Override
public void getDataError() {
// TODO Auto-generated method stub
}
@Override
public void getDataRefresh() {
// TODO Auto-generated method stub
}
class MyCustomerOnclickListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.linear_1:
showOrHide(0, model.getData().get(0).getSub_category());
break;
case R.id.linear_2:
showOrHide(1, model.getData().get(1).getSub_category());
break;
case R.id.linear_3:
showOrHide(2, model.getData().get(2).getSub_category());
break;
case R.id.linear_4:
showOrHide(3, model.getData().get(3).getSub_category());
break;
case R.id.linear_5:
showOrHide(4, model.getData().get(4).getSub_category());
break;
case R.id.linear_6:
showOrHide(5, model.getData().get(5).getSub_category());
break;
case R.id.linear_7:
showOrHide(6, model.getData().get(6).getSub_category());
break;
case R.id.linear_8:
showOrHide(7, model.getData().get(7).getSub_category());
break;
case R.id.linear_9:
showOrHide(8, model.getData().get(8).getSub_category());
break;
case R.id.linear_10:
showOrHide(9, model.getData().get(9).getSub_category());
break;
case R.id.linear_11:
showOrHide(10, model.getData().get(10).getSub_category());
break;
case R.id.linear_12:
showOrHide(11, model.getData().get(11).getSub_category());
break;
}
}
void showOrHide(final int i, final List<SubCategoryModel> list) {
if (list != null && list.size() > 0) {
mSubCategoryAdapter.setmList(list);
gvList.get(i).setAdapter(mSubCategoryAdapter);
descString = model.getData().get(i).getDesc();
mSubCategoryAdapter.notifyDataSetChanged();
for (int j = 0; j < hideList.size(); j++) {
if (j != i) {
hideList.get(j).setVisibility(View.GONE);
} else {
if (hideList.get(i).getVisibility() == View.VISIBLE) {
hideList.get(i).setVisibility(View.GONE);
} else {
hideList.get(i).setVisibility(View.VISIBLE);
gvList.get(i).setOnItemClickListener(
new OnItemClickListener() {
@Override
public void onItemClick(
AdapterView<?> parent,
View view, int position, long id) {
// TODO Auto-generated method stub
Intent _Intent = new Intent(
getActivity(),
ClassifyThreeCategoryActivity.class);
_Intent.putExtra("title",
descString);
_Intent.putExtra(
"content",
JSON.toJSONString(list
.get(position)
.getThree_category()));
startActivity(_Intent);
}
});
}
}
}
} else {
List<SubCategoryModel> lists = new ArrayList<SubCategoryModel>();
mSubCategoryAdapter.setmList(lists);
mSubCategoryAdapter.notifyDataSetChanged();
}
}
}
void showData(ShowCategoryModel model) {
List<CategoryModel> mLists = model.getData();
int length = model.getData().size();
for (int i = 0; i < model.getData().size(); i++) {
tvList.get(i).setText(model.getData().get(i).getTitle());
mImageLogic
.display(ivList.get(i), model.getData().get(i).getIcon());
}
int temp = (length - 1) / 3 + 2;
for (int i = length; i < linearList.size(); i++) {
linearList.get(i).setVisibility(View.INVISIBLE);
}
if (linearList.size() > (temp - 1) * 3)
for (int i = (temp - 1) * 3; i < linearList.size(); i++) {
linearList.get(i).setVisibility(View.GONE);
}
}
}
相应的信息实体类(Model)就不贴了,直接上一篇博客就行了。
下面给一下测试的地址:http://img2.xxh.cc:8080/SalesWebTest/CategoryList
最后再说一下最近我自己在搞工作室,希望小编(如果小编看到这段觉得不妥,请帮我删掉这段,非常感谢!)以及路过的朋友们不要介意哦。优清科技工作室团队,主要承接Android/IOS,J2EE,.Net,PHP,移动建站,网站建设,微信系统项目开发。