package com.game.Activity; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.Toolbar; import android.util.TypedValue; import android.view.View; import android.widget.TextView; import com.baoyz.swipemenulistview.SwipeMenu; import com.baoyz.swipemenulistview.SwipeMenuCreator; import com.baoyz.swipemenulistview.SwipeMenuItem; import com.baoyz.swipemenulistview.SwipeMenuListView; import com.baoyz.swipemenulistview.SwipeMenuListView.OnMenuItemClickListener; import com.game.Adapter.ChartsAdapter; import com.game.Data.MySqlHelper; import com.game.Model.Gamer; import com.game.R; import com.game.Utils.DialogUtils; import java.util.ArrayList; public class ChartsActivity extends ActionBarActivity { //滑动item private SwipeMenuListView mListView; //排行榜列表 private ChartsAdapter mAdapter; //排行榜列表适配器 private ArrayList<Gamer> mList = new ArrayList<Gamer>(); //排行榜列表数据 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //must //设置页面布局 setContentView(R.layout.activity_charts); //首先将数据放进list getData(); //绑定listview mListView = (SwipeMenuListView) findViewById(R.id.chartsListView); //初始化适配器 mAdapter = new ChartsAdapter(this, mList); //给listview设置适配器 mListView.setAdapter(mAdapter); //初始化toolbar initToolbar(); //开源库控件设置 SwipeMenuCreator creator = new SwipeMenuCreator() { @Override public void create(SwipeMenu menu) { // 新建一个open模块 SwipeMenuItem openItem = new SwipeMenuItem( getApplicationContext()); // set item background openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9, 0xCE))); // set item width openItem.setWidth(dp2px(90)); // set item title openItem.setTitle("Open"); // set item title fontsize openItem.setTitleSize(18); // set item title font color openItem.setTitleColor(Color.WHITE); // add to menu menu.addMenuItem(openItem); // 新建一个删除模块 SwipeMenuItem deleteItem = new SwipeMenuItem( getApplicationContext()); // set item background deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9, 0x3F, 0x25))); // set item width deleteItem.setWidth(dp2px(90)); // set a icon deleteItem.setIcon(R.drawable.ic_delete); // add to menu menu.addMenuItem(deleteItem); } }; //把 creator 与listview连接 mListView.setMenuCreator(creator); final Context context = this; mListView.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(int position, SwipeMenu menu, int index) { switch (index) { case 0: //第一个图标按钮 //显示用户信息dialog DialogUtils.getOpenDialog(context, mList.get(position)); break; case 1: //第二个图标按钮 //首先拿到数据库对象 MySqlHelper mySqlHelper = new MySqlHelper(getApplicationContext(), "myapp.db", null, 1); //然后获取可写数据库对象 SQLiteDatabase db = mySqlHelper.getWritableDatabase(); //在数据库中删除这条数据 db.delete("charts", "id = ?", new String[]{String.valueOf(mList.get(position).getId())}); //在当前显示的list中删除这条数据 mList.remove(position); //更新listview mAdapter.notifyDataSetChanged(); break; } return false; } }); } @Override public void onBackPressed() { super.onBackPressed(); finish(); } private void initToolbar() { Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar); TextView mToolBarTextView = (TextView) findViewById(R.id.text_view_toolbar_title); setSupportActionBar(mToolbar); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowTitleEnabled(false); mToolBarTextView.setText("排行榜"); mToolbar.setNavigationIcon(R.drawable.btn_back); mToolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); } //获取排行榜数据 private void getData() { //数据库helper(上下文 数据库名称 数据库工厂 数据库版本) MySqlHelper sqlHelper = new MySqlHelper(this, "myapp.db", null, 1); //获取数据库 final SQLiteDatabase db = sqlHelper.getWritableDatabase(); //查询数据 /** * table:表名。相当于select语句from关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。 * columns:要查询出来的列名。相当于select语句select关键字后面的部分。 * selection:查询条件子句,相当于select语句where关键字后面的部分,在条件子句允许使用占位符“?”  * selectionArgs:对应于selection语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。 * groupBy:相当于select语句groupby关键字后面的部分 * having:相当于select语句having关键字后面的部分 * orderBy:相当于select语句orderby关键字后面的部分 */ Cursor cursor = db.query("charts", null, null, null, null, null, "user_score desc");//列名称 倒排序 while (cursor.moveToNext()) { int nameIndex = cursor.getColumnIndex("user_name"); int scoreIndex = cursor.getColumnIndex("user_score"); int idIndex = cursor.getColumnIndex("id"); String name = cursor.getString(nameIndex); int score = cursor.getInt(scoreIndex); int id = cursor.getInt(idIndex); mList.add(new Gamer(id, name, score)); } } //dp换算成px private int dp2px(int dp) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics()); } }