通过将列值设置为1

时间:2017-05-27 21:57:36

标签: android sqlite android-sqlite

我在管理员的活动中列出了我的联系人列表,通过将etat的值从0更改为1列来确认他们,但是当我这样做时,列表中的所有联系人都已确认

数据库:

public void SETETAT(Contact e) {

      //helper.insertContact(c);
    db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    String query=" update contacts set etat='1' where id="+COLUMN_ID;
    Cursor ce=db.rawQuery(query ,null);
    int count=ce.getCount();
    e.getId();
    e.getEmail();
    e.getName();
    e.getPass();
    e.getPhone();
    e.getRepass();
    values.put(COLUMN_ETAT, e.getEtat());
    db.insert(TABLE_NAME, null, values);
    db.close();
}

列表

public class Tab2 extends Activity implements              OnItemClickListener{
    Cursor cursor;
    DatabaseHelper db;
    String info;
    ListView datalist;
    ArrayList<String> databaseList = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.onglet1);

        db = new DatabaseHelper(this);
        datalist = (ListView) findViewById(R.id.liste);
        List<Contact> values = db.getAllContact();

        ArrayAdapter<Contact> adapter = new ArrayAdapter<Contact>(Tab2.this,
                android.R.layout.simple_list_item_1, values);
        datalist.setAdapter(adapter);
        datalist.setOnItemClickListener(this);

    }
    public void onItemClick(AdapterView<?> l, View v, int position, long id) {
        Log.i("HelloListView", "You clicked Item: " + id + " at position:" + position);
        Intent intent = new Intent();
        intent.setClass(this, Approuver.class);
        intent.putExtra("position", position);
        intent.putExtra("id", id);
        startActivity(intent);
    }
}

这是按钮代码

public void con(View v)  {
    Contact e=new Contact();
    helper.SETETAT(e);
    Toast m = Toast.makeText(Approuver.this, "demande approuvé", Toast.LENGTH_SHORT);
    setContentView(R.layout.activity_main);
    m.show();
}

1 个答案:

答案 0 :(得分:0)

  

但是当我这样做时,列表中的所有联系人都被确认

然后你的查询错了。

select deptname, max(salary) from department, employee where 
  department.deptno=employee.deptno group by deptname;

您可以在Android之外使用SQLite。这可能是调试问题的好方法。

但是,如果我理解正确的话,您会尝试在点击时更新某行的联系人。

为了做到这一点,我认为您应该使用可用的String query=" update contacts set etat='1' where id="+COLUMN_ID; 方法。

因此,将适配器/列表移动到成员变量

Contact.getID()

然后,在侦听器中,您只想更新单击的项目。我不理解你不必要地调用的所有get方法或者带有内容值的insert查询。

ArrayAdapter<Contact> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.onglet1);

    db = new DatabaseHelper(this);
    datalist = (ListView) findViewById(R.id.liste);

    adapter = new ArrayAdapter<Contact>(Tab2.this,
        android.R.layout.simple_list_item_1, db.getAllContact());
    datalist.setAdapter(adapter);