package com.hanqi.blacklist.com.hanqi.blacklist;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.text.InputType;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import com.hanqi.blacklist.R;
import java.util.ArrayList;
public class Main_Activity extends Activity {
ListView lv_1;
ArrayList<BlackList> arraylist;
BlackListDAO bld=new BlackListDAO(this);
MyAdapter adapter;
int index;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv_1=(ListView)findViewById(R.id.lv_1);
lv_1.setOnCreateContextMenuListener(this);
arraylist=bld.getAll();
adapter=new MyAdapter();
lv_1.setAdapter(adapter);
}
public void bt_OnClick(View v)
{
final EditText editText=new EditText(this);
editText.setHint("输入电话号码");
editText.setInputType(InputType.TYPE_CLASS_PHONE);
new AlertDialog.Builder(this)
.setTitle("添加黑名单")
.setView(editText)
.setCancelable(false)
.setPositiveButton("保存", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
BlackList blackList = new BlackList(editText.getText().toString());
long l = new BlackListDAO(Main_Activity.this).insert(blackList);
if (l > 0) {
Toast.makeText(Main_Activity.this, "保存成功", Toast.LENGTH_SHORT).show();
arraylist.add(0,blackList);
adapter.notifyDataSetChanged();
} else {
Toast.makeText(Main_Activity.this, "保存失败", Toast.LENGTH_SHORT).show();
}
}
})
.setNegativeButton("取消", null)
.show();
}
//上下文菜单
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(0, 1, 1, "修改");
menu.add(0, 2, 2, "删除") ;
AdapterView.AdapterContextMenuInfo m= (AdapterView.AdapterContextMenuInfo)menuInfo;
index=m.position;
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId())
{
case 1:
final EditText et=new EditText(this);
et.setText(arraylist.get(index).getPhone());
et.setHint("输入电话号码");
et.setInputType(InputType.TYPE_CLASS_PHONE);
new AlertDialog.Builder(this)
.setTitle("修改联系人信息")
.setView(et)
.setNegativeButton("取消", null)
.setPositiveButton("修改", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
BlackList blackList=arraylist.get(index);
blackList.setPhone(et.getText().toString());
long l = bld.update(blackList);
if (l > 0) {
Toast.makeText(Main_Activity.this, "修改成功", Toast.LENGTH_SHORT).show();
adapter.notifyDataSetChanged();
}
}
})
.show();
break;
case 2:
new AlertDialog.Builder(this)
.setTitle("确认删除么?")
.setCancelable(false)
.setNegativeButton("取消",null)
.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
long l = bld.delete(arraylist.get(index).getId());
if (l > 0) {
arraylist.remove(index);
Toast.makeText(Main_Activity.this, "删除成功", Toast.LENGTH_SHORT).show();
}
adapter.notifyDataSetChanged();
}
})
.show();
break;
}
return super.onContextItemSelected(item);
}
class MyAdapter extends BaseAdapter
{
@Override
public int getCount() {
return arraylist.size();
}
@Override
public Object getItem(int position) {
return arraylist.get(position);
}
@Override
public long getItemId(int position) {
return arraylist.get(position).getId();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
BlackList blacklist=arraylist.get(position);
if (convertView==null)
{
convertView=View.inflate(Main_Activity.this,R.layout.blacklist_layout,null);
}
EditText et_phone=(EditText)convertView.findViewById(R.id.et_phone);
et_phone.setText(blacklist.getPhone());
return convertView;
}
}
}
package com.hanqi.blacklist.com.hanqi.blacklist;
public class BlackList {
private long id;
private String phone;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public BlackList(long id, String phone) {
this.id = id;
this.phone = phone;
}
public BlackList(String phone) {
this.phone = phone;
}
}
package com.hanqi.blacklist.com.hanqi.blacklist;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.text.TextUtils;
import java.util.ArrayList;
public class BlackListDAO {
private DBHelper dh;
private String TABLE_NAME="t_blacklist";
public BlackListDAO(Context context) {
dh=new DBHelper(context);
}
public long insert(BlackList blackList)
{
long rtn=0;
SQLiteDatabase sd=dh.getReadableDatabase();
ContentValues cv=new ContentValues();
cv.put("phone_number",blackList.getPhone());
rtn=sd.insert(TABLE_NAME, null, cv);
sd.close();
return rtn;
}
public int delete(long id)
{
int rtn=0;
SQLiteDatabase sd=dh.getReadableDatabase();
rtn= sd.delete(TABLE_NAME,"_id=?",new String[]{id+""});
sd.close();
return rtn;
}
public int update(BlackList blackList)
{
int rtn=0;
SQLiteDatabase sd=dh.getReadableDatabase();
ContentValues cv=new ContentValues();
cv.put("phone_number",blackList.getPhone());
rtn=sd.update(TABLE_NAME,cv,"_id=?",new String[]{blackList.getId()+""});
sd.close();
return rtn;
}
public ArrayList<BlackList> getAll()
{ SQLiteDatabase sd=dh.getReadableDatabase();
ArrayList<BlackList> blackLists=new ArrayList<>();
Cursor c=sd.query(TABLE_NAME, null, null, null, null, null, "_id desc");
while (c.moveToNext())
{
BlackList bl=new BlackList(c.getLong(0),c.getString(1));
blackLists.add(bl);
}
c.close();
sd.close();
return blackLists;
}
}
package com.hanqi.blacklist.com.hanqi.blacklist;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context,"blacklist.db",null,1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql= "CREATE TABLE blacklist (_id " +
" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," +
"phone_number INTEGER)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.hanqi.blacklist.MainActivity">
<ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/lv_1"></ListView>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="添加黑名单"
android:onClick="bt_OnClick"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="电话:"
android:id="@+id/tv_phone"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:id="@+id/et_phone"/>
</LinearLayout>
</LinearLayout>