android 二级菜单的实现
来源:互联网 发布:360安全认证软件 编辑:程序博客网 时间:2024/04/30 19:02
大众点评有一个功能,如图:
点击左边右边出来对应的内容,其实这个想到了方法很简单,
首先布局就是二个listview就可以搞定,无非是里面的数据是怎么填充的,
比如:第一个listview中定义一个List<String>集合比如:这个集合中添加了江西省,浙江省,福建省
那么江西省下面就有很多市,比如:九江市,南昌市,景德镇市,上饶市等等,那么如果在集合中再存放一个集合,这个集合就存放与省相关的市,
定义;private List<List<String>> Data2;
代码如下:
public class MainActivity extends Activity {
private ListView lv1,lv2;
private List<String> Data1;
private List<List<String>> Data2;
private Context ctx;
private MyAdapter myAdapter;
private MyDataAdapter myDataAdapter ;
public int position;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ctx = this;
lv1 = (ListView) findViewById(R.id.lv1);
lv2 = (ListView) findViewById(R.id.lv2);
initData();
myAdapter = new MyAdapter();
lv1.setAdapter(myAdapter);
myDataAdapter = new MyDataAdapter();
lv2.setAdapter(myDataAdapter);
lv1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
MainActivity.this.position = arg2;
myDataAdapter.setPosition(position);
myDataAdapter.notifyDataSetChanged();
}
});
}
private void initData() {
Data1 = new ArrayList<String>();
Data1.add("江西省");
Data1.add("浙江省");
Data1.add("福建省");
List<String> list= new ArrayList<String>();
list.add("南昌");
list.add("九江");
list.add("上饶");
list.add("赣州");
list.add("景德镇");
list.add("抚州");
List<String> list1= new ArrayList<String>();
list1.add("温州市");
list1.add("嘉兴市");
list1.add("湖州市");
list1.add("绍兴市");
list1.add("金华市");
list1.add("衢州市");
List<String> list2= new ArrayList<String>();
list2.add("莆田市");
list2.add("泉州市");
list2.add("厦门市");
list2.add("漳州市");
list2.add("龙岩市");
list2.add("三明市");
Data2 = new ArrayList<List<String>>();
Data2.add(list);
Data2.add(list1);
Data2.add(list2);
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return Data1.size();
}
@Override
public Object getItem(int arg0) {
return Data1.get(arg0);
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
TextView tv = new TextView(ctx);
tv.setText(Data1.get(arg0));
return tv;
}
}
/*************************************************/
class MyDataAdapter extends BaseAdapter{
public int position;
public void setPosition(int position) {
this.position = position;
}
@Override
public int getCount() {
return Data2.get(position).size();
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
TextView tv = new TextView(ctx);
List<String> list = Data2.get(position);
tv.setText(list.get(arg0));
return tv;
}
}
}
效果图:
- android 二级菜单的实现
- android 二级菜单实现
- Android 二级串联菜单的实现过程
- Android横向二级联动菜单的实现
- 二级菜单的实现
- 二级菜单的实现
- Android中实现二级菜单
- 二级动态菜单的实现
- 网页二级菜单的实现
- Android中ListView实现分类二级下拉菜单的效果
- Android 自定义HorizontalScrollView实现二级菜单
- DIV+CSS实现的横向二级菜单
- jsp+js实现的二级联动菜单
- C#:二级联动菜单的实现
- 实现二级联动菜单的技术细节
- DedeCMS二级导航菜单的实现
- jquery实现菜单的二级联动
- jsp+js实现的二级联动菜单
- BoundsChecker安装下载及使用教程攻略
- centos5.6升级php到5.3.8
- android开发步步为营之11:从手机联系人列表获取联系电话
- 今年暑假不AC
- 手写代码往最初的工程添加UINavigationController
- android 二级菜单的实现
- 使用Autolayout xib实现动态高度的TableViewCell
- POJ 3254 Corn Fields DP 状态压缩 入门
- Python-自定义异常
- oracle 存储过程 for (多个循环语句调用)
- HDU 2830 Matrix Swapping II
- 使用GitHub + Hexo搭建个人博客(一)- 安装
- 2015 百度一面
- 二分查找