旺仔:最后再一次写黑名单

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>

 

posted @ 2016-07-19 16:16  什么玩楞啊,我叫旺仔  阅读(144)  评论(0编辑  收藏  举报