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的更多相关文章

  1. Android 实现QQ扩展listview(expandlistview)

    Android 实现QQ扩展listview(expandlistview) <?xml version="1.0" encoding="utf-8"?& ...

  2. cocos2d-x3.1 下实现相似Android下ExpandListView的效果

    在左Android開始有SDK提供ExpandListView的可扩展列表,而在iOS下有很多第三方做好的Demo,这里我是參照iOS下RATreeView这个第三方库实现的. 本文代码:须要在3.1 ...

  3. Android ExpandListView的用法(补上昨天的)(今天自习)

    今天自习写ExpandListView的作业,昨天没写博客就是去写作业去了. 今天来说昨天内容吧! 其实ExpandListView和ListView的用法大同小异. 首先就是创建一个自己的适配器(现 ...

  4. ExpandListView onChildClickListener 失效

    http://stackoverflow.com/questions/11529472/expandablelistview-onchildclicklistener-not-work 首先声明:   ...

  5. 2015最流行的Android组件、工具、框架大全

    Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件. 本文试图将目前流行的组件收集起来以 ...

  6. 站在巨人的肩膀上---重新自定义 android- ExpandableListView 收缩类,实现列表的可收缩扩展

    距离上次更新博客,时隔略长,诸事繁琐,赶在去广州答辩之前,分享下安卓 android 中的一个 列表收缩 类---ExpandableListView 先上效果图: 如果想直接看实现此页面的代码请下滑 ...

  7. Android高手速成--第一部分 个性化控件(View)

    第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...

  8. 据说年薪30万的Android程序员必须知道的帖子

    Android中国开发精英 目前包括: Android开源项目第一篇--个性化控件(View)篇       包括ListView.ActionBar.Menu.ViewPager.Gallery.G ...

  9. 这是一个比较全的Android UI 组件

     Android组件及UI框架大全 原文地址:http://blog.csdn.net/smallnest/article/details/38658593 Android 是目前最流行的移动操作系统 ...

随机推荐

  1. iOS 获取UUID

    -(NSString*)GetUUID { CFUUIDRef puuid = CFUUIDCreate( nil ); CFStringRef uuidString = CFUUIDCreateSt ...

  2. Centos7关闭防火墙与selinux

    CentOS 7.0默认使用的是firewall作为防火墙 直接关闭防火墙 systemctl stop firewalld.service #停止firewall systemctl disable ...

  3. Android 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护

    本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context  ↳an ...

  4. node.js render模板

    在用node组织前端架构和后端的时候,如果不用nginx做反向代理,则会考虑怎么样render模板. 在现有的项目中没有以下几种方式render模板: 1.将.html当做静态文件,如果url定位到哪 ...

  5. 文件传输基础——Java IO流

    一.文件的编码 package com.study.io; /** * 测试文件编码 */ public class EncodeDemo { /** * @param args * @throws ...

  6. linux的5个查找命令_转

    转自:http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html 在Linux中 ...

  7. [转][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 ...

  8. 使用Html来避免写复杂的app代码,跨平台

    http://www.jianshu.com/p/c375ac056149 http://www.php.net.cn/app/

  9. iOS使用代码截图

    /** * 截图代码 * * @param view 需要截图的view * @param rect 需要截取的区域 * * @return 返回截取的对象 */ + (UIImage *)viewS ...

  10. Nginx实现多重IF判断的办法

    在YII框架中如果访问的图片不存在,会记录大量的错误,于是我想了个办法,凡是访问不存在的图片,直接返回404,不经过YII框架 location / {  set $if_img N;  if ($r ...