|
package com.electric.chargingpile.activity;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.electric.chargingpile.R;
import com.electric.chargingpile.adapter.MyCollectAdapter;
import com.electric.chargingpile.application.MainApplication;
import com.electric.chargingpile.data.CollectData;
import com.electric.chargingpile.util.BarColorUtil;
import com.electric.chargingpile.util.DatabaseHandler;
import com.electric.chargingpile.util.SharedPreferencesHelper;
import com.electric.chargingpile.view.AlertDialog;
import com.umeng.analytics.MobclickAgent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MyCollectActivity extends Activity implements View.OnClickListener {
private ImageView back;
private RecyclerView collectListView;
private CollectData collectData;
private ImageView tv_share;
private LinearLayout ll_collect;
int currPos;
SharedPreferencesHelper sharedPreferencesHelper;
private ImageView no_data;
private List<CollectData> mCollectDataList = new ArrayList<CollectData>();
private MyCollectAdapter myCollectAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_collect);
BarColorUtil.initStatusBarColor(MyCollectActivity.this);
initView();
}
private void initView() {
ll_collect = (LinearLayout) findViewById(R.id.ll_collect);
tv_share = (ImageView) findViewById(R.id.tv_share);
tv_share.setOnClickListener(this);
back = (ImageView) findViewById(R.id.iv_back);
back.setOnClickListener(this);
no_data = findViewById(R.id.no_data);
collectListView = findViewById(R.id.collect_listView);
List<CollectData> list = getCollectList();
myCollectAdapter = new MyCollectAdapter(this, list);
collectListView.setLayoutManager(new LinearLayoutManager(this));
collectListView.setAdapter(myCollectAdapter);
myCollectAdapter.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
onCollectItemClick(position);
}
});
myCollectAdapter.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
onCollectItemLongClick(position);
return true;
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_back:
finish();
break;
case R.id.tv_share:
Toast.makeText(this, "您可以长按来删除收藏条目", Toast.LENGTH_LONG).show();
break;
}
}
public List<CollectData> getCollectList() {
mCollectDataList.clear();
DatabaseHandler db = new DatabaseHandler(MyCollectActivity.this, "");
Cursor c = db.query();
if (c.getCount() <= 0) {
no_data.setVisibility(View.VISIBLE);
return mCollectDataList;
} else {
no_data.setVisibility(View.GONE);
}
List<CollectData> tmpList = new ArrayList<CollectData>();
while (c.moveToNext()) {
collectData = new CollectData();
collectData.setZhan_id(c.getString(c.getColumnIndex("zhan_id")));
collectData.setZhan_name(c.getString(c.getColumnIndex("zhan_name")));
collectData.setZhan_address(c.getString(c.getColumnIndex("zhan_address")));
collectData.setFast_num(c.getString(c.getColumnIndex("fast_num")));
collectData.setSlow_num(c.getString(c.getColumnIndex("slow_num")));
tmpList.add(collectData);
}
String inStr = "(";
for (CollectData data : tmpList) {
inStr += data.getZhan_id() + ",";
}
inStr = inStr.substring(0, inStr.length() - 1);
inStr += ")";
Map<String, String> map = new HashMap<String, String>();
String sql = "select id,status from zhan_list where status = 4 and id in " + inStr;
String dbPath = "/data/user/0/com.electric.chargingpile/databases/zhan_list";
try {
SQLiteDatabase sqLiteDatabase = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READWRITE);
Cursor cursor = sqLiteDatabase.rawQuery(sql, null);
while (cursor.moveToNext()) {
String id = cursor.getString(cursor.getColumnIndex("id"));
String status = cursor.getString(cursor.getColumnIndex("status"));
map.put(id, status);
}
cursor.close();
db.close();
} catch (Exception e) {
e.printStackTrace();
}
for (CollectData d : tmpList) {
if (map.get(d.getZhan_id()) != null) {
mCollectDataList.add(d);
}
}
return mCollectDataList;
}
public void onCollectItemClick(int currPos) {
this.currPos = currPos;
Intent intent = new Intent(this, NewZhanDetailsActivity.class);
intent.putExtra("zhan_id", mCollectDataList.get(currPos).getZhan_id());
startActivityForResult(intent, 3);
MainApplication.details_flag = "2";
}
public void onCollectItemLongClick(int currPos) {
new AlertDialog(MyCollectActivity.this).builder().setTitle("删除该条收藏")
.setMsg("删除后将无法在我的收藏中查看该站信息,请确认是否删除?")
.setPositiveButton("删除记录", new View.OnClickListener() {
@Override
public void onClick(View v) {
sharedPreferencesHelper = new SharedPreferencesHelper(MyCollectActivity.this);
DatabaseHandler db = new DatabaseHandler(MyCollectActivity.this, "");
db.del(mCollectDataList.get(currPos).getZhan_id());
sharedPreferencesHelper.removeData(mCollectDataList.get(currPos).getZhan_name());
mCollectDataList.remove(currPos);
Toast.makeText(MyCollectActivity.this, "删除记录成功", Toast.LENGTH_SHORT).show();
List<CollectData> list = getCollectList();
myCollectAdapter.setData(list);
}
}).setNegativeButton("取消", new View.OnClickListener() {
@Override
public void onClick(View v) {
}
}).show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//先判断是哪个页面返回过来的
switch (requestCode) {
case 3:
//再判断返回过来的情况,是成功还是失败还是其它的什么……
switch (resultCode) {
case 1: // 删除
sharedPreferencesHelper = new SharedPreferencesHelper(MyCollectActivity.this);
sharedPreferencesHelper.removeData(mCollectDataList.get(currPos).getZhan_name());
mCollectDataList.remove(currPos);
List<CollectData> list = getCollectList();
myCollectAdapter.setData(list);
}
break;
}
}
@Override
protected void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
}
|