Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Sqlite android中从数据库中删除数据_Java_Android_Android Sqlite - Fatal编程技术网

Java 在Sqlite android中从数据库中删除数据

Java 在Sqlite android中从数据库中删除数据,java,android,android-sqlite,Java,Android,Android Sqlite,这是我在SqliteDatabase类中的delete函数 public void deleteContact(Employee contact) { SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_EMployee, KEY_ID + " = ?", new String[] { String.valueOf(con

这是我在SqliteDatabase类中的delete函数

public void deleteContact(Employee contact) {  
            SQLiteDatabase db = this.getWritableDatabase();  
            db.delete(TABLE_EMployee, KEY_ID + " = ?",  
                    new String[] { String.valueOf(contact.get_id()) });  
            db.close();  
        }  
员工类别:

public class Employee {

    private int _id;
    private String _name;
    private String _email;

    public Employee() {
        // TODO Auto-generated constructor stub
    }

    public Employee(int id, String name, String email) {
        this._id = id;
        this._name = name;
        this._email = email;

    }

    public Employee(String name, String email) {
        this._name = name;
        this._email = email;

    }

    public int get_id() {
        return _id;
    }

    public void set_id(int _id) {
        this._id = _id;
    }

    public String get_name() {
        return _name;
    }

    public void set_name(String _name) {
        this._name = _name;
    }

    public String get_email() {
        return _email;
    }

    public void set_email(String _email) {
        this._email = _email;
    }

}
  MainActivity Class:




public class MainActivity extends Activity {
    MySqliteDatabase db = new MySqliteDatabase(this);
    EditText nametext;
    EditText emailtext;
    Button btn;
    public List<Employee> list1 = new ArrayList<Employee>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        nametext = (EditText) findViewById(R.id.editText1);
        emailtext = (EditText) findViewById(R.id.editText2);
        btn = (Button) findViewById(R.id.button1);
        ListView list = (ListView) findViewById(R.id.listView1);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                String name = nametext.getText().toString();
                String email = emailtext.getText().toString();

                db.addEmployee(new Employee(name, email));

                Toast.makeText(getApplicationContext(), "SucessfullyInseter",
                        1000).show();

            }

        });

        list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub

                Toast.makeText(getApplicationContext(), arg2 + "clicke", 1000)
                        .show();

            }
        });

        list.setOnItemLongClickListener(new OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                // TODO Auto-generated method stub
                Employee emp = new Employee();
                db.deleteContact(emp);
                return false;
            }
        });

    }

    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
        List<Employee> contacts = db.getAllContacts();
        for (Employee cn : contacts) {
            String log = "Id: " + cn.get_id() + " ,Name: " + cn.get_name()
                    + " ,Phone: " + cn.get_email();
            // Writing Contacts to log
            Log.d("Name: ", log);
        }
        ListView list = (ListView) findViewById(R.id.listView1);
        ContanctAdapter objAdapter = new ContanctAdapter(MainActivity.this,
                R.layout.alluser_row, contacts);
        list.setAdapter(objAdapter);
    }

} 
公共类员工{
私人内部id;
私有字符串\u名称;
私人字符串\u电子邮件;
公职人员(){
//TODO自动生成的构造函数存根
}
公共雇员(整数id、字符串名称、字符串电子邮件){
这个。_id=id;
这个。_name=name;
这个。_email=电子邮件;
}
公共雇员(字符串名称、字符串电子邮件){
这个。_name=name;
这个。_email=电子邮件;
}
public int get_id(){
返回_id;
}
公共无效集\u id(int\u id){
这个。_id=_id;
}
公共字符串get_name(){
返回_name;
}
公共无效集\u名称(字符串\u名称){
这个。_name=_name;
}
公共字符串get_email(){
返回电子邮件;
}
公共无效设置\u电子邮件(字符串\u电子邮件){
这个.\u email=\u email;
}
}
主要活动类别:
公共类MainActivity扩展了活动{
MySqliteDatabase db=新的MySqliteDatabase(this);
编辑文本名称文本;
编辑文本电子邮件文本;
按钮btn;
public List list1=new ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nametext=(EditText)findViewById(R.id.editText1);
emailtext=(EditText)findViewById(R.id.editText2);
btn=(按钮)findViewById(R.id.button1);
ListView列表=(ListView)findViewById(R.id.listView1);
btn.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
String name=nametext.getText().toString();
字符串email=emailtext.getText().toString();
db.新增员工(新员工(姓名、电子邮件));
Toast.makeText(getApplicationContext(),“SuccessFullyInSeter”,
1000)show();
}
});
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
Toast.makeText(getApplicationContext(),arg2+“clicke”,1000)
.show();
}
});
list.setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
长单击(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//TODO自动生成的方法存根
员工emp=新员工();
db.deleteContact(emp);
返回false;
}
});
}
@凌驾
受保护的void onStart(){
//TODO自动生成的方法存根
super.onStart();
List contacts=db.getAllContacts();
对于(员工cn:联系人){
String log=“Id:”+cn.get_Id()+”,Name:“+cn.get_Name()
+,电话:“+cn.get_email();
//将联系人写入日志
Log.d(“名称:”,Log);
}
ListView列表=(ListView)findViewById(R.id.listView1);
ContanctAdapter objAdapter=新ContanctAdapter(main activity.this,
R.layout.alluser_行,触点);
列表.setAdapter(objAdapter);
}
} 
当我需要longitemclick功能时,我想删除特定项目的联系人,但我无法删除。请告诉我如何耗尽联系人。

像这样使用

//删除

public void deleteid(Employee contact) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_EMployee, KEY_ID + " = ?",
            new String[] { String.valueOf(contact.getID()) });
    db.close();
}
您应该像这样调用该方法

 Employee emp = new Employee(); 
    emp.setId(yourid);
        db.deleteContact(emp);

您遇到了什么错误?但无法删除列表数据您是否检查了数据库,如果它实际上已被删除,但未从列表中删除?是的,我认为我在这里犯了错误。请告诉我如何应用Employee emp=new Employee();db.deleteContact(emp);返回false;删除sql lite上的数据时,listview不会影响,从db数据库中删除时,应删除列表中的行。在Mainactivity中,从listview中删除数据时,不应删除数据class@user3432979我知道它将在databaseHandler类中,对吗?是的,请帮助我,我认为我在这里犯了错误雇员emp=新雇员(); db.deleteContact(emp);返回false;我将如何设置它我将把listview的位置值设置为?@user3432979:不明白吗?