expandlistview
package com.exaple.zhonghe2;
import java.sql.SQLData;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.exaple.Exapa.ExpandBaptwe;
import com.exaple.Exapa.MyHelp;
import com.exaple.netUtil.NetUti;
import com.exaple.vo.Myinfo;
import com.exaple.vo.ShowA;
import com.exaple.vo.Super;
import com.google.gson.Gson;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
public class MainActivity extends Activity {
private String title;
public List<Myinfo> li;
Handler ha = new Handler() {
private Set<String> set_ctitle;
private ArrayList<ShowA> al;
public void handleMessage(android.os.Message msg) {
String ma = (String) msg.obj;
Gson gs = new Gson();
Super fromJson = gs.fromJson(ma, Super.class);
li = fromJson.getInfo();
set_ctitle = new HashSet<String>();
for (Myinfo m : li) {
set_ctitle.add(m.getCtitle());
}
List<String> lis = new ArrayList<String>();
lis.addAll(set_ctitle);
//添加数据库
for (int i = 0; i < lis.size(); i++) {
String set = lis.get(i);
sql.execSQL("insert into user values(null,?)",
new String[] { set });
}
final List<ArrayList<ShowA>> child_list = new ArrayList<ArrayList<ShowA>>();
for (int i = 0; i < lis.size(); i++) {
al = new ArrayList<ShowA>();
for (Myinfo n : li) {
if (n.getCtitle().equals(lis.get(i))) {
ShowA sn = new ShowA();
sn.setCtime(n.getCtime());
sn.setCtitle(n.getCtitle());
sn.setDescript(n.getDescript());
sn.setPicurl(n.getPicurl());
sn.setTitle(n.getTitle());
al.add(sn);
}
}
child_list.add(al);
}
for (int i = 0; i < al.size(); i++) {
String time = al.get(i).getCtime();
String ctitle = al.get(i).getCtitle();
String descrip = al.get(i).getDescript();
String pic = al.get(i).getPicurl();
String title = al.get(i).getTitle();
sql.execSQL("insert into use values(null,?,?,?,?,?)",
new String[] { time, ctitle, descrip, pic, title });
}
ExpandBaptwe ba = new ExpandBaptwe(lis, MainActivity.this,
child_list, text);
exp.setAdapter(ba);
};
};
private EditText edtext;
private Button button;
private ExpandableListView exp;
private String text;
private SQLiteDatabase sql;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edtext = (EditText) findViewById(R.id.edtext);
button = (Button) findViewById(R.id.button);
exp = (ExpandableListView) findViewById(R.id.exe);
MyHelp my = new MyHelp(MainActivity.this, "users", null, 1);
sql = my.getWritableDatabase();
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
text = edtext.getText().toString();
new Thread() {
public void run() {
String str = NetUti
.GetJson("http://www.hengboit.com/json/json_search.php?wd="
+ text);
ha.sendMessage(ha.obtainMessage(1, str));
};
}.start();
}
});
exp.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
Intent ints = new Intent(MainActivity.this, NewActivity.class);
ints.putExtra("name", li.get(childPosition).getCtime());
startActivity(ints);
return true;
}
});
}
}
//适配器
package com.exaple.Exapa;
import java.util.ArrayList;
import java.util.List;
import com.exaple.Exapa.Apater.ViewHodler;
import com.exaple.vo.Myinfo;
import com.exaple.vo.ShowA;
import com.exaple.zhonghe2.MainActivity;
import com.exaple.zhonghe2.NewActivity;
import com.exaple.zhonghe2.R;
import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.db.sqlite.CursorUtils.FindCacheSequence;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.BackgroundColorSpan;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class ExpandBaptwe extends BaseExpandableListAdapter {
List<String> lis;
Context co;
List<ArrayList<ShowA>> child_list;
String text;
private SQLiteDatabase sql;
public ExpandBaptwe(List<String> lis, Context co,
List<ArrayList<ShowA>> child_list, String text) {
super();
this.lis = lis;
this.text = text;
this.co = co;
this.child_list = child_list;
MyHelp my = new MyHelp(co, "users", null, 1);
sql = my.getReadableDatabase();
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return lis.size();
}
@Override
public int getChildrenCount(int groupPosition) {
/*String title_group = lis.get(groupPosition);
System.out.println(title_group + "====================");
// 通过向数据库查询出对应的二级列表的信息
Cursor c = sql.rawQuery("select * from use where ctitle = ?",
new String[] { title_group });
System.out.println(lis.get(groupPosition).length());*/
return child_list.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
return groupPosition;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
View view = View.inflate(co,
android.R.layout.simple_expandable_list_item_1, null);
TextView text = (TextView) view.findViewById(android.R.id.text1);
text.setText(lis.get(groupPosition));
return view;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
View view_layout = View.inflate(co, R.layout.apater, null);
TextView t1 = (TextView) view_layout.findViewById(R.id.des);
TextView t2 = (TextView) view_layout.findViewById(R.id.time);
ImageView t3 = (ImageView) view_layout.findViewById(R.id.image);
/*
* Cursor c = sql.rawQuery("select * from use where ctitle =?", new
* String[] { lis.get(groupPosition)}); List<Myinfo> list = new
* ArrayList<Myinfo>();
*
* while (c.moveToNext()) { String s =
* c.getString(c.getColumnIndex("title")); list.add(new Myinfo(s));
*
* }
*/
//t1.setText(list.get(childPosition).getTitle());
// List<Myinfo> liss=new ArrayList<Myinfo>();
ShowA a = child_list.get(groupPosition).get(childPosition);
t1.setText(a.getDescript());
t2.setText(a.getTitle());
BitmapUtils bit = new BitmapUtils(co);
bit.display(t3, a.getPicurl());
// 设置字体颜色
if (text != null) {
String str = t2.getText().toString();
int id1 = str.indexOf(text);
if (id1 != -1) {
int end = id1 + text.length();
SpannableStringBuilder builder = new SpannableStringBuilder(str);
ForegroundColorSpan redSpan = new ForegroundColorSpan(Color.RED);
builder.setSpan(redSpan, id1, end,
Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
t2.setText(builder);
}
}
return view_layout;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
}
////数据库
package com.exaple.Exapa;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class MyHelp extends SQLiteOpenHelper{
public MyHelp(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table user(id integer,ctitle)");
db.execSQL("create table use(id integer,ctime,ctitle,descript,picurl,title)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
expandlistview的更多相关文章
- Android 实现QQ扩展listview(expandlistview)
Android 实现QQ扩展listview(expandlistview) <?xml version="1.0" encoding="utf-8"?& ...
- cocos2d-x3.1 下实现相似Android下ExpandListView的效果
在左Android開始有SDK提供ExpandListView的可扩展列表,而在iOS下有很多第三方做好的Demo,这里我是參照iOS下RATreeView这个第三方库实现的. 本文代码:须要在3.1 ...
- Android ExpandListView的用法(补上昨天的)(今天自习)
今天自习写ExpandListView的作业,昨天没写博客就是去写作业去了. 今天来说昨天内容吧! 其实ExpandListView和ListView的用法大同小异. 首先就是创建一个自己的适配器(现 ...
- ExpandListView onChildClickListener 失效
http://stackoverflow.com/questions/11529472/expandablelistview-onchildclicklistener-not-work 首先声明: ...
- 2015最流行的Android组件、工具、框架大全
Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件. 本文试图将目前流行的组件收集起来以 ...
- 站在巨人的肩膀上---重新自定义 android- ExpandableListView 收缩类,实现列表的可收缩扩展
距离上次更新博客,时隔略长,诸事繁琐,赶在去广州答辩之前,分享下安卓 android 中的一个 列表收缩 类---ExpandableListView 先上效果图: 如果想直接看实现此页面的代码请下滑 ...
- Android高手速成--第一部分 个性化控件(View)
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...
- 据说年薪30万的Android程序员必须知道的帖子
Android中国开发精英 目前包括: Android开源项目第一篇--个性化控件(View)篇 包括ListView.ActionBar.Menu.ViewPager.Gallery.G ...
- 这是一个比较全的Android UI 组件
Android组件及UI框架大全 原文地址:http://blog.csdn.net/smallnest/article/details/38658593 Android 是目前最流行的移动操作系统 ...
随机推荐
- iOS 获取UUID
-(NSString*)GetUUID { CFUUIDRef puuid = CFUUIDCreate( nil ); CFStringRef uuidString = CFUUIDCreateSt ...
- Centos7关闭防火墙与selinux
CentOS 7.0默认使用的是firewall作为防火墙 直接关闭防火墙 systemctl stop firewalld.service #停止firewall systemctl disable ...
- Android 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护
本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context ↳an ...
- node.js render模板
在用node组织前端架构和后端的时候,如果不用nginx做反向代理,则会考虑怎么样render模板. 在现有的项目中没有以下几种方式render模板: 1.将.html当做静态文件,如果url定位到哪 ...
- 文件传输基础——Java IO流
一.文件的编码 package com.study.io; /** * 测试文件编码 */ public class EncodeDemo { /** * @param args * @throws ...
- linux的5个查找命令_转
转自:http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html 在Linux中 ...
- [转][C++ 11]override and final - write clean and maintainable C++ code
原文: http://arne-mertz.de/2015/12/modern-c-features-override-and-final/ Today I write about a pair of ...
- 使用Html来避免写复杂的app代码,跨平台
http://www.jianshu.com/p/c375ac056149 http://www.php.net.cn/app/
- iOS使用代码截图
/** * 截图代码 * * @param view 需要截图的view * @param rect 需要截取的区域 * * @return 返回截取的对象 */ + (UIImage *)viewS ...
- Nginx实现多重IF判断的办法
在YII框架中如果访问的图片不存在,会记录大量的错误,于是我想了个办法,凡是访问不存在的图片,直接返回404,不经过YII框架 location / { set $if_img N; if ($r ...