package com.example.xutilslianxi;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.example.adapter.MyAdapter;
import com.example.model.JavaBean;
import com.example.model.JavaBean2;
import com.example.view.XListView;
import com.example.view.XListView.IXListViewListener;
import com.google.gson.Gson;
import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.DbUtils;
import com.lidroid.xutils.DbUtils.DaoConfig;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.bitmap.PauseOnScrollListener;
import com.lidroid.xutils.exception.DbException;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.slidingmenu.lib.SlidingMenu;
public class MainActivity extends Activity implements IXListViewListener {
@ViewInject(R.id.xlistview)
private XListView xlistview;
private List<JavaBean2> lists;
private List<JavaBean2> lts;
private int i=1;
private MyAdapter adapter;
private Handler handler=new Handler(){
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
private DbUtils db;
private ListView menu_list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewUtils.inject(this);
DaoConfig config=new DaoConfig(this);
config.setDbName("NBA");
config.setDbVersion(1);
db=DbUtils.create(config);
try {
db.createTableIfNotExist(JavaBean2.class);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//初始化listview
initlixtview();
//初始化菜单
initmenu();
//网络请求
questhttp();
}
private void initmenu() {
SlidingMenu menu=new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setMenu(R.layout.left_menu);
menu.setShadowWidth(15);
menu.setShadowDrawable(R.drawable.android_ratingbar_single);
menu.setBehindWidth(400);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
View view = menu.getMenu();
menu_list=(ListView)view.findViewById(R.id.menu_list);
List<String> list=new ArrayList<String>();
list.add("新闻");
list.add("查询全部");
list.add("查询单个");
list.add("状态");
ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, list);
menu_list.setAdapter(adapter);
menu_list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if(arg2==0){
questhttp();
}else if(arg2==1){
try {
JavaBean2 jb=new JavaBean2();
JavaBean2 bean2 = db.findById(JavaBean2.class,jb.get_id() );
List<JavaBean2> all = db.findAll(JavaBean2.class);
Log.e("Main",all.toString());
Toast.makeText(MainActivity.this, "查找成功"+all.toString(),2).show();
new AlertDialog.Builder(MainActivity.this).setTitle("查询内容").setMessage(all.toString()).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else if(arg2==2){
}else if(arg2==3){
}
}
});
}
//数据库保存
private void savadb() {
SharedPreferences spf = getSharedPreferences("count", MODE_PRIVATE);
Editor edit = spf.edit();
int count = spf.getInt("count", 0);
if(count==0){
for(JavaBean2 jb:lists){
try {
db.save(jb);
Log.e("Main", "数据库保存成功");
} catch (DbException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
edit.putInt("count", ++count);
edit.commit();
}
}
private void initlixtview() {
xlistview.setPullRefreshEnable(true);
xlistview.setPullLoadEnable(true);
xlistview.setXListViewListener(this);
//设置listview滑动和快速滑动式停止加载图片
xlistview.setOnScrollListener(new PauseOnScrollListener(new BitmapUtils(this), false
, true));
}
//停止原先恢复状态
private void stopStatic(){
xlistview.stopRefresh();
xlistview.stopLoadMore();
xlistview.setRefreshTime(gettime());
}
private String gettime() {
SimpleDateFormat format=new SimpleDateFormat("yy:D:mm HH时mm分ss秒");
return format.format(new Date());
}
@Override
public void onRefresh() {
handler.postDelayed(new Runnable() {
public void run() {
questhttp();
stopStatic();
}
}, 3000);
}
@Override
public void onLoadMore() {
handler.postDelayed(new Runnable() {
public void run() {
lts.clear();
i++;
for(int j=0;j<i*5;j++){
if(j==lists.size()){
break;
}
lts.add(lists.get(j));
}
adapter.notifyDataSetChanged();
stopStatic();
}
}, 3000);
}
//网络请求
private List<JavaBean2> questhttp(){
String url="http://api.sina.cn/sinago/list.json?" +
"channel=hdpic_story&alid=4ad30dabe134695c3b7c3a65977d7e727wm-b207&" +
"from=6042095012&chwm=12050_0001&imei=867064013906290&" +
"uid=802909da86d9f5fc&p=1";
HttpUtils http=new HttpUtils();
http.send(HttpMethod.GET, url, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
Toast.makeText(MainActivity.this, "请求失败"+arg1, 0).show();
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
Toast.makeText(MainActivity.this, "请求成功", 5000).show();
Gson gs=new Gson();
JavaBean bean = gs.fromJson(arg0.result, JavaBean.class);
lists=bean.data.getList();
savadb();
lts=new ArrayList<JavaBean2>();
lts.clear();
for(int i=0;i<5;i++){
lts.add(lists.get(i));
}
adapter=new MyAdapter(lts, MainActivity.this
);
xlistview.setAdapter(adapter);
}
});
return lists;
}
}
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.example.adapter.MyAdapter;
import com.example.model.JavaBean;
import com.example.model.JavaBean2;
import com.example.view.XListView;
import com.example.view.XListView.IXListViewListener;
import com.google.gson.Gson;
import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.DbUtils;
import com.lidroid.xutils.DbUtils.DaoConfig;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.bitmap.PauseOnScrollListener;
import com.lidroid.xutils.exception.DbException;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.slidingmenu.lib.SlidingMenu;
public class MainActivity extends Activity implements IXListViewListener {
@ViewInject(R.id.xlistview)
private XListView xlistview;
private List<JavaBean2> lists;
private List<JavaBean2> lts;
private int i=1;
private MyAdapter adapter;
private Handler handler=new Handler(){
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
private DbUtils db;
private ListView menu_list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewUtils.inject(this);
DaoConfig config=new DaoConfig(this);
config.setDbName("NBA");
config.setDbVersion(1);
db=DbUtils.create(config);
try {
db.createTableIfNotExist(JavaBean2.class);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//初始化listview
initlixtview();
//初始化菜单
initmenu();
//网络请求
questhttp();
}
private void initmenu() {
SlidingMenu menu=new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setMenu(R.layout.left_menu);
menu.setShadowWidth(15);
menu.setShadowDrawable(R.drawable.android_ratingbar_single);
menu.setBehindWidth(400);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
View view = menu.getMenu();
menu_list=(ListView)view.findViewById(R.id.menu_list);
List<String> list=new ArrayList<String>();
list.add("新闻");
list.add("查询全部");
list.add("查询单个");
list.add("状态");
ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, list);
menu_list.setAdapter(adapter);
menu_list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if(arg2==0){
questhttp();
}else if(arg2==1){
try {
JavaBean2 jb=new JavaBean2();
JavaBean2 bean2 = db.findById(JavaBean2.class,jb.get_id() );
List<JavaBean2> all = db.findAll(JavaBean2.class);
Log.e("Main",all.toString());
Toast.makeText(MainActivity.this, "查找成功"+all.toString(),2).show();
new AlertDialog.Builder(MainActivity.this).setTitle("查询内容").setMessage(all.toString()).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else if(arg2==2){
}else if(arg2==3){
}
}
});
}
//数据库保存
private void savadb() {
SharedPreferences spf = getSharedPreferences("count", MODE_PRIVATE);
Editor edit = spf.edit();
int count = spf.getInt("count", 0);
if(count==0){
for(JavaBean2 jb:lists){
try {
db.save(jb);
Log.e("Main", "数据库保存成功");
} catch (DbException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
edit.putInt("count", ++count);
edit.commit();
}
}
private void initlixtview() {
xlistview.setPullRefreshEnable(true);
xlistview.setPullLoadEnable(true);
xlistview.setXListViewListener(this);
//设置listview滑动和快速滑动式停止加载图片
xlistview.setOnScrollListener(new PauseOnScrollListener(new BitmapUtils(this), false
, true));
}
//停止原先恢复状态
private void stopStatic(){
xlistview.stopRefresh();
xlistview.stopLoadMore();
xlistview.setRefreshTime(gettime());
}
private String gettime() {
SimpleDateFormat format=new SimpleDateFormat("yy:D:mm HH时mm分ss秒");
return format.format(new Date());
}
@Override
public void onRefresh() {
handler.postDelayed(new Runnable() {
public void run() {
questhttp();
stopStatic();
}
}, 3000);
}
@Override
public void onLoadMore() {
handler.postDelayed(new Runnable() {
public void run() {
lts.clear();
i++;
for(int j=0;j<i*5;j++){
if(j==lists.size()){
break;
}
lts.add(lists.get(j));
}
adapter.notifyDataSetChanged();
stopStatic();
}
}, 3000);
}
//网络请求
private List<JavaBean2> questhttp(){
String url="http://api.sina.cn/sinago/list.json?" +
"channel=hdpic_story&alid=4ad30dabe134695c3b7c3a65977d7e727wm-b207&" +
"from=6042095012&chwm=12050_0001&imei=867064013906290&" +
"uid=802909da86d9f5fc&p=1";
HttpUtils http=new HttpUtils();
http.send(HttpMethod.GET, url, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
Toast.makeText(MainActivity.this, "请求失败"+arg1, 0).show();
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
Toast.makeText(MainActivity.this, "请求成功", 5000).show();
Gson gs=new Gson();
JavaBean bean = gs.fromJson(arg0.result, JavaBean.class);
lists=bean.data.getList();
savadb();
lts=new ArrayList<JavaBean2>();
lts.clear();
for(int i=0;i<5;i++){
lts.add(lists.get(i));
}
adapter=new MyAdapter(lts, MainActivity.this
);
xlistview.setAdapter(adapter);
}
});
return lists;
}
}