package com.mttz;

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

import com.mttz.adapter.CaiDanADP;
import com.mttz.bean.ShopDTO;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;

public class CaiPinFragment extends Fragment{

//开始
ListView listView, listView2;
/**
* 本来想做标题停留在最上方的,不想想了
*/
// TextView textView;
/**
* 左边listview的要使用的数组
*/
String[] arr = new String[] {"快餐","超市","水果","生鲜","药店","更多" };

String[] arr2 = new String[] { "快餐", "水饺", "面", "米粉", "辣椒", "" };
String[] arr3 = new String[] { "超市", "急", "用", "钱", "找", "我", "们" };
String[] arr4 = new String[] { "水果", "放", "款", "快", "额" };
String[] arr5 = new String[] { "生鲜", "度", "高", "无", "需", "低", "压",
"food" };
String[] arr6 = new String[] { "药店", "联", "系", "电" };
String[] arr7 = new String[] { "更多", "话", "x", "x", "x", "x", "x",
"x", "x", "x", "美", "通", "投", "资" };

String[][] arr8 = new String[][] { arr2, arr3, arr4, arr5, arr6, arr7 };

/**
* 用来存放 food数组
*/
List<String> list;

/**
* 用来记录每一个 1 2 3 4 5 6 在右边listview的位置;
*/
List<Integer> nums = new ArrayList<Integer>();
//结束

// private ListView cp_caidan_lv,cp_caipin_lv;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_caipin,container, false);
// initWithView(rootView);
initView(rootView);

return rootView;
}

// private void initWithView(View view){
// cp_caidan_lv = (ListView) view.findViewById(R.id.cp_caidan_lv);//左侧菜单栏
// cp_caipin_lv = (ListView) view.findViewById(R.id.cp_caidan_lv);//右侧菜品栏
//
//
// }
//

private void initView(View view)
{
// textView = (TextView) findViewById(R.id.textView1);
listView = (ListView) view.findViewById(R.id.cp_caidan_lv);

List<String> CaiPinLV= new ArrayList<String>();
// list = new ArrayList<String>();

for (int j = 0; j < arr.length; j++)
{

CaiPinLV.add(arr[j]);

}

CaiDanADP adp = new CaiDanADP(CaiPinLV, getActivity());
listView.setAdapter(adp);

list = new ArrayList<String>();

for (int j = 0; j < arr8.length; j++)
{
for (int j2 = 0; j2 < arr8[j].length; j2++)
{
list.add(arr8[j][j2]);
}
}

for (int i = 0; i < arr8.length; i++)
{
if (i == 0)
{
nums.add(0);
} else if (i > 0 && i < arr8.length)
{
int num = 0;
for (int j = 0; j < i; j++)
{
num = num + arr8[j].length;

}
nums.add(num);
}
}

listView2 =(ListView) view.findViewById(R.id.cp_caipin_lv);
listView2.setAdapter(new MyAdapter());

/**
*
* 判断listview滑动
* */
listView2.setOnScrollListener(new AbsListView.OnScrollListener()
{

@Override
public void onScrollStateChanged(AbsListView view, int scrollState)
{

}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount)
{
if (nums.contains(firstVisibleItem) && listView.getChildCount() > 0)
{

for (int i = 0; i < listView.getChildCount(); i++)
{
if (i == nums.indexOf(firstVisibleItem))
{
listView.getChildAt(i).setBackgroundColor(
Color.rgb(200, 200, 200));
} else
{
listView.getChildAt(i).setBackgroundColor(Color.TRANSPARENT);

}

}

}
}
});

listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id)
{
for (int i = 0; i < listView.getChildCount(); i++)
{
if (i == position)
{
view.setBackgroundColor(Color.rgb(255, 250, 250));
} else
{
view.setBackgroundColor(Color.rgb(200, 200, 200));
}
}

listView2.setSelection(nums.get(position));

}
});

}

class MyAdapter extends BaseAdapter
{
private LayoutInflater inflater;

@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)
{
// TextView textView = new TextView(getActivity());
// textView.setText(list.get(position));
// textView.setGravity(Gravity.CENTER_VERTICAL);
// textView.setMinHeight(200);
//
//
// if (nums.contains(position))
// {
// textView.setBackgroundColor(Color.argb(80,80, 80, 80));
// }

// if (convertView == null) {
inflater = LayoutInflater.from(getActivity());
convertView = inflater.inflate(R.layout.shop_item, null);

TextView shop_name = (TextView) convertView.findViewById(R.id.shop_name);
ImageView shoplogo = (ImageView) convertView.findViewById(R.id.shop_logo);
// convertView.setTag(holder);
shop_name.setText(list.get(position));
shoplogo.setBackgroundResource(R.drawable.eleme_sjm);
if (nums.contains(position))
{
convertView = inflater.inflate(R.layout.goods_details, null);
// convertView.setg
TextView cp = (TextView) convertView.findViewById(R.id.cp_root);
cp.setText(list.get(position));
cp.setTextColor(Color.rgb(255,250,250));
convertView.setBackgroundColor(Color.rgb(200, 200, 200));
return convertView;
}else {
return convertView;
}
// }
//
//
// if (mInfo!=null) {
// String shopname= mInfo.getShopname();
// String imageUrl = mInfo.getShoplogo();

}

}
}

两listview联动的更多相关文章

  1. 仿饿了吗点餐界面两个ListView联动效果

    这篇文章主要介绍了仿饿了点餐界面2个ListView联动效果的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 如图是效果图: 是仿饿了的点餐界面 1.点击左侧的ListView,通过在在适 ...

  2. 解析ListView联动的实现--仿饿了么点餐界面

    一.博客的由来 大神王丰蛋哥 之前一篇博客仿饿了点餐界面2个ListView联动(http://www.cnblogs.com/wangfengdange/p/5886064.html) 主要实现了2 ...

  3. Android实现导航菜单随着ListView联动,当导航菜单遇到顶部菜单时停止在哪里,并且listview仍能滑动

    需求:现要实现一个特殊UI的处理,如下图所示: 该布局的上面是一个“按钮”,中间是一个“空白布局(当然也可以是ViewPager等)”,下面是一个页面的导航菜单,底部是一个ListView. 要求:滑 ...

  4. 仿饿了点餐界面2个ListView联动

    如图是效果图 是仿饿了的点餐界面 1.点击左侧的ListView,通过在在适配器中设置Item来改变颜色,再通过notifyDataSetInvalidated来刷新并用lv_home.setSele ...

  5. ajax实现无刷新两级联动DropDownList

    ajax实现的无刷新三级联动 http://zhangyu028.cnblogs.com/articles/310568.html 本文来自小山blog:http://singlepine.cnblo ...

  6. JS练习:两级联动

    代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...

  7. Combobox下拉框两级联动

    下拉框的两级联动是我们开发中经常遇到一种情况.比如一个学生管理系统中,根据年级.科目及姓名查询学生考试成绩,年级和科目都是硬盘中的有限数据(数据库)而学生则可以有用户手动指定,这时在数据库中有年级和科 ...

  8. 仿美团外卖,饿了吗 两个ListView联动,左边点击切换右边,右边滑动切换左边

    先上效果图: 实现思路: 1.先说右边标题: 首先,右边的数据源集合中的Javabean中含有三个属性name,type,title,而每个条目中会默认含有一个标题. 如果这是第一个条目,就让标题显示 ...

  9. android 带表头,左右两个联动的ListView

    package com.rytong.mylist; import java.util.ArrayList; import java.util.HashMap; import java.util.Li ...

随机推荐

  1. 利用HTML5 的Datalist 元素实现输入提示

    HTML5有无限可能,总是在释出一些新鲜实用的功能,让原生的web环境更加炫酷. 今天看到datalist 这个元素,可以用来预先定义一个输入框的潜在选项,也就是我们在平时项目中经常用jQuery插件 ...

  2. Spring学习记录(十三)---基于xml文件配置AOP

    上一篇讲了用注解配置AOP,现在讲用xml怎么配置AOP 其实逻辑是一样的,只是用xml的方法,要把这种逻辑写出来,告诉spring框架去执行. 例子:这里的例子和上一篇的例子一样.换成xml方式 / ...

  3. node入门学习1

    一个普通网站访问过程(1)浏览器向服务器发出一个HTTP请求(2)域名解析为IP地址(3)建立TCP连接(4)浏览器发起HTTP请求(5)服务器接收到HTTP请求,解析请求的路径和参数 出现乱码的原因 ...

  4. angular1

    1.双向绑定: 可进可出 2.依赖注入 函数有定义方定义 3.MVC M: Model 模型--数据 V: View 视图--表现层 C: Controller  控制器--业务逻辑 4.模板: {{ ...

  5. 分页实现:Offset-Fetch

    SQL Server 2012 新增 Offset-Fetch子句,用于从有序结果集中,跳过一定数量的数据行,获取指定数量的数据行,从而达到分页的目的.经过测试,在分页查询上,从逻辑读取数和响应时间来 ...

  6. 堆排序与优先队列——算法导论(7)

    1. 预备知识 (1) 基本概念     如图,(二叉)堆是一个数组,它可以被看成一个近似的完全二叉树.树中的每一个结点对应数组中的一个元素.除了最底层外,该树是完全充满的,而且从左向右填充.堆的数组 ...

  7. 了解HTML表单之form元素

    前面的话 表单是网页与用户的交互工具,由一个<form>元素作为容器构成,封装其他任何数量的表单控件,还有其他任何<body>元素里可用的标签 表单能够包含<input& ...

  8. 前端学HTTP之WEB服务器

    前面的话 Web服务器每天会分发出数以亿计的Web页面,它是万维网的骨干.本文主要介绍WEB服务器的相关内容 总括 Web服务器会对HTTP请求进行处理并提供响应.术语“Web服务器”可以用来表示We ...

  9. C#-正则,常用几种数据解析-端午快乐

    在等待几个小时就是端午节了,这里预祝各位节日快乐. 这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢. 开始吧 ...

  10. 【目录】JVM目录

    JVM学习目录 为了方便园友,现对JVM序列笔记做了归档,园友们可以一口气读完整个JVM的笔记 1. [JVM]JVM系列之JVM体系(一) 2. [JVM]JVM系列之垃圾回收(二) 3. [JVM ...