package com.alice.asaproject;
import java.util.ArrayList;
import java.util.List;
import com.alice.asaproject.common.Const_Collect;
import com.alice.asaproject.customview.PopupmenuBar;
import com.alice.asaproject.customview.PopupmenuBar.ActionItem;
import com.alice.asaproject.customview.PopupmenuBar.OnMenuItemClickedListener;
import com.alice.asaproject.domain.SharepreferenceUtil;
import com.alice.asaproject.helper.DBHelper;
import com.alice.asaproject.javabean.ProductBean;
import com.android.volley.RequestQueue;
import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import android.os.Bundle;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.graphics.Bitmap.Config;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.AsyncTaskLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.CursorAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class CollectActivity extends FragmentActivity implements LoaderCallbacks<Cursor> {
@ViewInject(R.id.listView_collect)
private ListView listView_collect;
@ViewInject(R.id.textView_backCollect)
private TextView textView_backCollect;
private PopupmenuBar popupmenuBar;//弹出菜单
/**
* 声明数据源对象
*/
private List<ProductBean> list=null;
/**
* 声明游标对象
*/
private Cursor cursor;
/**
* 声明加载管理器对象
*/
private LoaderManager loaderManager;
/**
* 声明请求队列对象
*/
private RequestQueue requestQueue;
/**
* 声明适配器对象
*/
private static MyCollectAdapter adapter;
private BitmapUtils bitmapUtils = null;//加载图片的框架
private LayoutInflater inflater = null;
public final class MyCollectAdapter extends CursorAdapter{
public MyCollectAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
inflater = (LayoutInflater) context //设置图片缓存
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
String discCachePath =context.getExternalCacheDir().getAbsolutePath();
bitmapUtils = new BitmapUtils(context, discCachePath)
.configMemoryCacheEnabled(true)
.configDefaultBitmapMaxSize(300, 300)
.configDefaultBitmapConfig(Config.ALPHA_8)
.configDefaultLoadFailedImage(R.drawable.defaultcovers_collect)
.configThreadPoolSize(5)
.configDefaultImageLoadAnimation(
AnimationUtils.loadAnimation(context, R.anim.alpha));
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder viewHolder=(ViewHolder) view.getTag();
//找到数据库里的字段
String id= cursor.getString(cursor.getColumnIndex(Const_Collect.TABLE_NAME_MYCOLLECT_FIELD_ID));
String name=cursor.getString(cursor.getColumnIndex(Const_Collect.TABLE_NAME_MYCOLLECT_FIELD_TITLE));
String longName=cursor.getString(cursor.getColumnIndex(Const_Collect.TABLE_NAME_MYCOLLECT_FIELD_DESCRIPTION));
String aprice=cursor.getString(cursor.getColumnIndex(Const_Collect.TABLE_NAME_MYCOLLECT_FIELD_PRICE));
String pno=cursor.getString(cursor.getColumnIndex(Const_Collect.TABLE_NAME_MYCOLLECT_FIELD_PNO));
String oldprice=cursor.getString(cursor.getColumnIndex(Const_Collect.TABLE_NAME_MYCOLLECT_FIELD_OLDPRICE));
String mainimg=cursor.getString(cursor.getColumnIndex(Const_Collect.TABLE_NAME_MYCOLLECT_FIELD_MAINIMG));
String product_id=cursor.getString(cursor.getColumnIndex(Const_Collect.TABLE_NAME_MYCOLLECT_FIELD_P_ID));
// System.out.println("0000000000000000000000000 "+name );
ProductBean product=new ProductBean(id, name, pno, longName, mainimg, product_id, aprice, oldprice);
list.add(product);
// System.out.println("11111111111111111111111111111111111111 "+list.size());
viewHolder.textView_title.setText(name);
viewHolder.textView_describ_collect.setText(longName);
viewHolder.textView_price_collect.setText(aprice);
bitmapUtils.display(viewHolder.imageView_collectBig,product.getMainimg());
System.out.println("6666666666666666666666666666666 "+mainimg);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
ViewHolder viewHolder=new ViewHolder();
LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view=inflater.inflate(R.layout.item_collect, viewGroup,false);
viewHolder.textView_title=(TextView) view.findViewById(R.id.textView_title);
viewHolder.textView_describ_collect=(TextView) view.findViewById(R.id.textView_describ_collect);
viewHolder.textView_price_collect=(TextView) view.findViewById(R.id.textView_price_collect);
viewHolder.imageView_collectBig = (ImageView) view.findViewById(R.id.imageView_collectBig);
view.setTag(viewHolder);
return view;
}
class ViewHolder{
ImageView imageView_collectBig;
TextView textView_title,textView_describ_collect,textView_price_collect;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_collect);
initView();
initPopupmenuBar();//初始化弹出窗体
}
private void initPopupmenuBar() {
// 实例化标题栏弹窗
popupmenuBar=new PopupmenuBar(this, R.layout.popupwindow_menu,
R.id.title_list,Color.WHITE, LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
// 设置弹窗的布局界面
// popupmenuBar.setContentView(LayoutInflater.from(MainActivity.this).inflate(R.layout.item_popupwindow, null));
// 给标题栏弹窗添加子类
popupmenuBar.addAction(new PopupmenuBar.ActionItem(this, "个人中心",
R.drawable.mm_title_btn_compose_normal));
popupmenuBar.addAction(new PopupmenuBar.ActionItem(this, "我的收藏",
R.drawable.mm_title_btn_keyboard_normal));
popupmenuBar.addAction(new PopupmenuBar.ActionItem(this, "系统设置",
R.drawable.mm_title_btn_receiver_normal));
popupmenuBar.setOnMenuItemClickedListener(new OnMenuItemClickedListener() {
@Override
public void onItemClicked(ActionItem item, int position) {
switch (position) {
case 0:
boolean boolean1=SharepreferenceUtil.getBoolean(CollectActivity.this, "login");
if(boolean1==true){
Toast.makeText(CollectActivity.this, "登录成功了。。", Toast.LENGTH_SHORT).show();
}else{
Intent intent=new Intent(CollectActivity.this,LoginActivity.class);
startActivity(intent);
}
break;
case 1:
Intent intent2=new Intent(CollectActivity.this,CollectActivity.class);
startActivity(intent2);
break;
case 2:
Intent intent3=new Intent();
intent3.setClass(CollectActivity.this, SystemSettingsActivity.class);
startActivity(intent3);
break;
default:
break;
}
}
});
}
public void click(View v){
popupmenuBar.show(v);
}
private void initView() {
ViewUtils.inject(this);
// this.requestQueue=Volley.newRequestQueue(this);
list=new ArrayList<ProductBean>();
// this.imageLoader=ImageLoaderUtils.getImageLoader(requestQueue);
this.loaderManager=this.getSupportLoaderManager();
this.loaderManager.initLoader(0, null, this);
adapter=new MyCollectAdapter(CollectActivity.this, cursor, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
listView_collect.setAdapter(adapter);
textView_backCollect.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
static class MyLoader extends AsyncTaskLoader<Cursor>{
private Context context;
public MyLoader(Context context) {
super(context);
this.context=context;
}
@Override
protected void onStartLoading() {
if(takeContentChanged()){
forceLoad();
}
this.loadInBackground();
}
@Override
public Cursor loadInBackground() {
DBHelper dbHelper=DBHelper.getInstance(context);
SQLiteDatabase db=dbHelper.getReadableDatabase();
Cursor cursor=db.query(Const_Collect.TABLE_NAME_MYCOLLECT, null, null, null, null, null, null);
cursor.moveToFirst();//此处必须移到第一行
adapter.swapCursor(cursor);
adapter.notifyDataSetChanged();
return cursor;
}
}
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
return new MyLoader(CollectActivity.this);
}
@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
}
@Override
protected void onDestroy() {
super.onDestroy();
// this.requestQueue.stop();
}
}