显示特定的行listiview android(来自MySQL的数据)

时间:2016-06-03 06:43:38

标签: php android mysql sqlite listview

使用ListView中的数据显示MySQL我想要的是转到用户电子邮件所在的特定listivew行。

电子邮件之前已记录在SQLITEMySQL中,listview包含具有不同电子邮件的不同用户。 这是我的代码:

 SimpleAdapter adapter2 = new SimpleAdapter(this,list, R.layout.b_server_list_item,
            new String[]{Config.TAG_EMAIL,Config.TAG_ID,Config.TAG_FOTO,Config.TAG_NOMBRE,Config.TAG_PESO,Config.TAG_VASOS,Config.TAG_SEGUIMIENTO},
            new int[]{R.id.list_email,R.id.id,R.id.foto_id, R.id.Nombre, R.id.Peso, R.id.Vasos, R.id.Seguimiento}) {

        @Override
        public View getView (int position, View convertView, ViewGroup parent) {
            View view = super.getView(position, convertView, parent);
            TextView receiverIdTextView = (TextView) view.findViewById(R.id.Rank);
            int pos = position+1;
            receiverIdTextView.setText("" + pos); //this all work OK

            SQLiteDatabase datos;
            datos = getApplicationContext().openOrCreateDatabase("DBMIEMBRO", Context.MODE_PRIVATE, null);
            String query_email = "SELECT * from usermail order by _id DESC limit 1";
            Cursor c_email = datos.rawQuery(query_email, null);
            c_email.moveToFirst(); 
            //i comproved if has data. It has and display ok in TextView

            //My proble begin here, i dont know if is the correct way to do what i want
            String listEmail = (c_email.getString(c_email.getColumnIndex(DBhelper.KEY_EMAIL)));
            if (listEmail.equals(R.id.list_email)){

                listView.setSelection(pos);} 
     /.../
   return view;
        }
    };
    listView.setAdapter(adapter2);

这不起作用,显示所有数据,但此listview未显示用户电子邮件所在的特定行。我想检查SQLITE中存储的电子邮件是否在列表中(显示MySQL),如果是,则显示特定行。在我的代码中,我检查过,我可以看到我在其中一行(显示MySQL)和textview(显示SQLITE)中有相同的邮件。

1 个答案:

答案 0 :(得分:0)

以下检查完全错误。您的检查字符串值为整数

       if (listEmail.equals(R.id.list_email)){

            listView.setSelection(pos);} 

而不是那个有mail_id方便并检查它。

更多内部getview实现数据库调用将减慢列表视图滚动