简体   繁体   中英

Data Deleted From Recycler List But Not From Sqlite Database

I am working on android application I which I am using Recycler Adapter and Sqlite database to delete and update the sqlite database.

My Problem is when I Click on Item in Recycler view to delete It Deletes the data from list, But When I Click Back and open List Again The deleted data is still there.

I have checked my database From device File Explorer That The Data does not deleted from database.

Same thing happens with the Update

Here is My Recycler Adapter Class

public class UserRecyclerAdapterSavedUsers extends RecyclerView.Adapter<UserRecyclerAdapterSavedUsers.UserViewHolder> {

private List<User> listUsers;
Context mContext;
RecyclerView mRecyclerView;
ItemClickListenerLongPressed itemClickListenerLongPressed;
UserRecyclerAdapterSavedUsers userRecyclerAdapterSavedUsers;
View itemView;

public UserRecyclerAdapterSavedUsers(List<User> listUsers,RecyclerView recyclerView) {
    this.listUsers = listUsers;
    mRecyclerView=recyclerView;
}

@Override
public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    mContext= parent.getContext();
    itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.item_user_recycler_second, parent, false);

    return new UserViewHolder(itemView);
}
/**
 * ViewHolder class
 */
public class UserViewHolder extends RecyclerView.ViewHolder {

    //public AppCompatTextView ID;
    public AppCompatTextView textViewID;
    public AppCompatTextView textViewName;
    public AppCompatTextView textViewPassword;
    public AppCompatTextView textViewRole;
    LinearLayout layout;

    public UserViewHolder(View view) {
        super(view);

        textViewID = (AppCompatTextView) view.findViewById(R.id.textViewID);
        textViewName = (AppCompatTextView) view.findViewById(R.id.textViewName);
        textViewPassword = (AppCompatTextView) view.findViewById(R.id.textViewPassword);
        textViewRole = (AppCompatTextView) view.findViewById(R.id.textViewRole);
        layout = (LinearLayout) view.findViewById(R.id.list_view);
    }
}
@Override
public void onBindViewHolder(UserViewHolder holder, final int position) {

    holder.textViewID.setText(listUsers.get(position).getUserid());
    holder.textViewName.setText(listUsers.get(position).getName());
    holder.textViewPassword.setText(listUsers.get(position).getPassword());
    holder.textViewRole.setText(listUsers.get(position).getRole());
    holder.layout.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            displayingAlertDialog(position);
            return false;
        }
    });

}

public void setItemClickListenerLongPressed(ItemClickListenerLongPressed itemClickListenerLongPressed) {
    this.itemClickListenerLongPressed = itemClickListenerLongPressed;
}

@Override
public int getItemCount() {
    Log.v(UsersRecyclerAdapter.class.getSimpleName(),""+listUsers.size());
    return listUsers.size();
}

private void displayingAlertDialog(final int position) {
    final User user= new User();
    //displaying alert dialog box
    AlertDialog.Builder builder = new AlertDialog.Builder(itemView.getContext());
    builder.setTitle("Choose Option");
    builder.setMessage("Update or Delete?");
    builder.setPositiveButton("Update", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

            //go to update activity
            gotupdateuserActivity(user.getUserid());
            // dialog.cancel();

        }
    });
    builder.setNeutralButton("Delete", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //go to Remove Item
            DatabaseHelper dbHelper = new DatabaseHelper(mContext);
            dbHelper.deletePersonRecord(user.getUserid(), mContext);
            listUsers.remove( position);
            notifyItemRemoved(position);
            mRecyclerView.removeViewAt(position);
            notifyItemRangeChanged(position, listUsers.size());
            notifyDataSetChanged();
            dialog.cancel();

        }
    });
    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });
    AlertDialog alert11 = builder.create();
    alert11.show();
}
public void remove(int position) {
    listUsers.remove(position);
    notifyItemRemoved(position);
}

private void gotupdateuserActivity(String userid) {
    Intent goToUpdate = new Intent(mContext, UpdateUserRec.class);
    goToUpdate.putExtra("USER_ID", userid);
    Toast.makeText(mContext, "USER REC", Toast.LENGTH_SHORT).show();
    mContext.startActivity(goToUpdate);
}

}

Here is Sqlite Database Helper Class

public class DatabaseHelper extends SQLiteOpenHelper {

// Database Version
private static final int DATABASE_VERSION = 2;
Context context;

// Database Name
private static final String DATABASE_NAME = "DynamicERP.db";

public  static final String table_imei = "IMEITABLE";
public  static final String table_login= "USERLOGIN";

// User Table Columns names

public static final String imeiid = "IMEIID";
public static final String imei = "IMEI";

public static final String userid = "USERID";
public static final String username = "USERNAME";
public static final String password = "PASSWORD";
public static final String userrole = "USERROLE";


// create table sql query
private static final String DATABASE_CIMEI = "CREATE TABLE " + table_imei + "("
        + imeiid + " INTEGER, " + imei + " VARCHAR );" ;

private static final String DATABASE_CUSER = "CREATE TABLE " + table_login + "("
        + userid + " INTEGER, " + username + " VARCHAR, " + password + " INTEGER, " + userrole + " VARCHAR );" ;

// drop table sql query
private String DROP_IMEI_TABLE = "DROP TABLE IF EXISTS " + table_imei;
private String DROP_USER_TABLE = "DROP TABLE IF EXISTS " + table_login;

/**
 * Constructor
 *
 * @param context
 */
public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(DATABASE_CIMEI);
    db.execSQL(DATABASE_CUSER);
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    //Drop User Table if exist
    db.execSQL(DROP_USER_TABLE);

    // Create tables again
    onCreate(db);

}

/**
 * This method is to create user record
 *
 * @param user
 */
public void addUser(User user) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(userid,user.getUserid());
    values.put(username, user.getName());
    values.put(password, user.getPassword());
    values.put(userrole, user.getRole());

    // Inserting Row
    db.insert(table_login, null, values);
    db.close();
}

public void addIMEI(User user) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(imei,user.getImei());
    values.put(imeiid, user.getImeiid());

    // Inserting Row
    db.insert(table_imei, null, values);
    db.close();
}

/**
 * This method is to fetch all user and return the list of user records
 *
 * @return list
 */
public List<User> getAllUser() {
    // array of columns to fetch
    String[] columns = {
            userid,
            username,
            password,
            userrole
    };
    // sorting orders
    String sortOrder =
            userid + " ASC";
    List<User> userList = new ArrayList<User>();

    SQLiteDatabase db = this.getReadableDatabase();

    // query the user table
    /**
     * Here query function is used to fetch records from user table this function works like we use sql query.
     * SQL query equivalent to this query function is
     * SELECT user_id,user_name,user_email,user_password FROM user ORDER BY user_name;
     */
    Cursor cursor = db.query(table_login, //Table to query
            columns,    //columns to return
            null,        //columns for the WHERE clause
            null,        //The values for the WHERE clause
            null,       //group the rows
            null,       //filter by row groups
            sortOrder); //The sort order


    // Traversing through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            User user = new User();
            //user.setId(Integer.parseInt(cursor.getString(cursor.getColumnIndex(userid))));
            user.setUserid(cursor.getString(cursor.getColumnIndex(userid)));
            user.setName(cursor.getString(cursor.getColumnIndex(username)));
            user.setPassword(cursor.getString(cursor.getColumnIndex(password)));
            user.setRole(cursor.getString(cursor.getColumnIndex(userrole)));
            // Adding user record to list
            userList.add(user);
        } while (cursor.moveToNext());
    }
    cursor.close();
    db.close();

    // return user list
    return userList;
}



/**
 * This method is to fetch all user and return the list of user records
 *
 * @return list
 */
public List<User> getAllImei() {
    // array of columns to fetch
    String[] columns = {
            imeiid,
            imei,
    };
    // sorting orders
    String sortOrder =
            imeiid + " ASC";
    List<User> userList = new ArrayList<User>();

    SQLiteDatabase db = this.getReadableDatabase();

    // query the user table
    /**
     * Here query function is used to fetch records from user table this function works like we use sql query.
     * SQL query equivalent to this query function is
     * SELECT user_id,user_name,user_email,user_password FROM user ORDER BY user_name;
     */
    Cursor cursor = db.query(table_imei, //Table to query
            columns,    //columns to return
            null,        //columns for the WHERE clause
            null,        //The values for the WHERE clause
            null,       //group the rows
            null,       //filter by row groups
            sortOrder); //The sort order


    // Traversing through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            User user = new User();
            //user.setId(Integer.parseInt(cursor.getString(cursor.getColumnIndex(userid))));
            user.setImei(cursor.getString(cursor.getColumnIndex(imei)));
            user.setImeiid(cursor.getString(cursor.getColumnIndex(imeiid)));
            // Adding user record to list
            userList.add(user);
        } while (cursor.moveToNext());
    }
    cursor.close();
    db.close();

    // return user list
    return userList;
}

/**
 * This method to update user record
 *
 * @param receivedUSERId
 * @param updateUserRec
 * @param user
 */
public void updateUser(String receivedUSERId, UpdateUserRec updateUserRec, User user) {
    SQLiteDatabase db = this.getWritableDatabase();
    String strSQL = "UPDATE "+table_login+ " SET "+username+" = "+user.getName()+"," +
            " "+password+" = "+user.getPassword()+","+userrole+" = "+user.getRole()+"" +
            " WHERE "+userid+" = "+receivedUSERId;
    db.execSQL(strSQL);
    db.close();
}



/**
 * This method is to delete user record
 *
 * @param user
 */
public void deleteUser(User user) {
    SQLiteDatabase db = this.getWritableDatabase();
    // delete user record by id
    db.delete(table_login, userid + " = ?",
            new String[]{String.valueOf(user.getUserid())});
    db.close();
}

/**
 * This method to check user exist or not
 *
  @param userid
 * @return true/false
 */
public boolean checkUser(String userid) {

    // array of columns to fetch
    String[] columns = {
            userid
    };
    SQLiteDatabase db = this.getReadableDatabase();

    // selection criteria
    String selection = userid + " = ?";

    // selection argument
    String[] selectionArgs = {userid};

    // query user table with condition
    /**
     * Here query function is used to fetch records from user table this function works like we use sql query.
     * SQL query equivalent to this query function is
     * SELECT user_id FROM user WHERE imei = 'dynamic@imei.com';
     */
    Cursor cursor = db.query(table_login, //Table to query
            columns,                    //columns to return
            selection,                  //columns for the WHERE clause
            selectionArgs,              //The values for the WHERE clause
            null,                       //group the rows
            null,                      //filter by row groups
            null);                      //The sort order
    int cursorCount = cursor.getCount();
    cursor.close();
    db.close();

    if (cursorCount > 0) {
        return true;
    }

    return false;
}


/**
 * This method to check user exist or not
 *
 * @param email
 * @param password
 * @return true/false
 */
public boolean checkUser(String email, String password) {

    // array of columns to fetch

    String[] columns = {
            userid
    };
    SQLiteDatabase db = this.getReadableDatabase();
    // selection criteria
    String selection = userid + " = ?" + " AND " + password + " = ?";

    // selection arguments
    String[] selectionArgs = {email, password};

    // query user table with conditions
    /**
     * Here query function is used to fetch records from user table this function works like we use sql query.
     * SQL query equivalent to this query function is
     * SELECT user_id FROM user WHERE user_email = 'jack@androidtutorialshub.com' AND user_password = 'qwerty';
     */
    Cursor cursor = db.query(table_login, //Table to query
            columns,                    //columns to return
            selection,                  //columns for the WHERE clause
            selectionArgs,              //The values for the WHERE clause
            null,                       //group the rows
            null,                       //filter by row groups
            null);                      //The sort order

    int cursorCount = cursor.getCount();

    cursor.close();
    db.close();
    if (cursorCount > 0) {
        return true;
    }

    return false;
}

/**
 * This method to check user exist or not
 *
 * @param userid
 * @param username
 * @return true/false
 */
public boolean checkUserData(String userid, String username) {

    // array of columns to fetch

    String[] columns = {
            userid
    };
    SQLiteDatabase db = this.getReadableDatabase();
    // selection criteria
    String selection = userid + " = ?" + " AND " + username + " = ?";

    // selection arguments
    String[] selectionArgs = {userid, username};

    // query user table with conditions
    /**
     * Here query function is used to fetch records from user table this function works like we use sql query.
     * SQL query equivalent to this query function is
     * SELECT user_id FROM user WHERE user_email = 'jack@androidtutorialshub.com' AND user_password = 'qwerty';
     */
    Cursor cursor = db.query(table_login, //Table to query
            columns,                    //columns to return
            selection,                  //columns for the WHERE clause
            selectionArgs,              //The values for the WHERE clause
            null,                       //group the rows
            null,                       //filter by row groups
            null);                      //The sort order

    int cursorCount = cursor.getCount();

    cursor.close();
    db.close();
    if (cursorCount > 0) {
        return true;
    }

    return false;
}

public boolean checkUserData(String userid) {
    // array of columns to fetch
    String[] columns = {
            userid
    };
    SQLiteDatabase db = this.getReadableDatabase();

    // selection criteria
    String selection = userid + " = ?";

    // selection argument
    String[] selectionArgs = {userid};

    // query user table with condition
    /**
     * Here query function is used to fetch records from user table this function works like we use sql query.
     * SQL query equivalent to this query function is
     * SELECT user_id FROM user WHERE user_email = 'dynamic@data.com';
     */
    Cursor cursor = db.query(table_login, //Table to query
            columns,                    //columns to return
            selection,                  //columns for the WHERE clause
            selectionArgs,              //The values for the WHERE clause
            null,                       //group the rows
            null,                      //filter by row groups
            null);                      //The sort order
    int cursorCount = cursor.getCount();
    cursor.close();
    db.close();

    if (cursorCount > 0) {
        return true;
    }

    return false;
}

public User getUser(String id){
    SQLiteDatabase db = this.getWritableDatabase();
    String query= "SELECT  * FROM "+table_login;

    Cursor cursor = db.rawQuery(query, null);

    User user = new User();
    if(cursor.getCount() > 0) {
        cursor.moveToFirst();

        user.setUserid(cursor.getString(cursor.getColumnIndex(userid)));
        user.setName(cursor.getString(cursor.getColumnIndex(username)));
        user.setPassword(cursor.getString(cursor.getColumnIndex(password)));
        user.setRole(cursor.getString(cursor.getColumnIndex(userrole)));
    }
    return user;

}

public void deletePersonRecord(String useridValue, Context mContext) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL("DELETE FROM "+table_login+" WHERE "+userid +"='"+useridValue+"'");
    Toast.makeText(mContext, "Deleted successfully.", Toast.LENGTH_SHORT).show();
    db.close();
}
public void deleteIMEIRecord(String imeiidValue, Context mContext) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL("DELETE FROM "+table_imei+" WHERE "+imeiid +"='"+imeiidValue+"'");
    Toast.makeText(mContext, "Deleted successfully.", Toast.LENGTH_SHORT).show();

}

public void updateIMEI(String receivedIMEIId, UpdateIMEIRec updateIMEIRec, User user) {
    SQLiteDatabase db = this.getWritableDatabase();
    String strSQL = "UPDATE "+table_imei+ " SET "+imei+" = "+user.getImei()+"," +
            " "+imeiid+" = "+user.getImeiid()+
            " WHERE "+imeiid+" = "+receivedIMEIId;
    db.execSQL(strSQL);
    db.close();

}



public User getIMEI(String receivedIMEIId) {
    SQLiteDatabase db = this.getWritableDatabase();
    String query = "SELECT  * FROM " + table_imei  ;
    Cursor cursor = db.rawQuery(query, null);

    User user = new User();
    if(cursor.getCount() > 0) {
        cursor.moveToFirst();

        user.setImeiid(cursor.getString(cursor.getColumnIndex(imeiid)));
        user.setImei(cursor.getString(cursor.getColumnIndex(imei)));
    }
    return user;
}

}

And Here is my Recycler List Activity Class

public class UserUpdateListActivity extends AppCompatActivity {

 AppCompatActivity activity = UserUpdateListActivity.this;

 AppCompatTextView textViewName;
 RecyclerView recyclerViewUsers;
 AppCompatButton textViewButtonNewUser;
 List<User> listUsers;
 UserRecyclerAdapterSavedUsers userRecyclerAdapterSavedUsers;

 DatabaseHelper databaseHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_record_updated_list);
    //getSupportActionBar().setTitle("");
    initViews();
    initObjects();
}

@Override
public void onBackPressed() {
    super.onBackPressed();
    startActivity(new Intent(UserUpdateListActivity.this,AdminMain.class));
    finish();
}

@Override
protected void onRestart() {
    super.onRestart();
}


/**
 * This method is to initialize views
 */
private void initViews() {
    textViewName = (AppCompatTextView) findViewById(R.id.textViewName);
    textViewButtonNewUser = (AppCompatButton) findViewById(R.id.btnaddnew);
    recyclerViewUsers = (RecyclerView) findViewById(R.id.recyclerViewUsers);
    textViewButtonNewUser.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(UserUpdateListActivity.this,UserRecordSaveActivity.class));
        }
    });
}

/**
 * This method is to initialize objects to be used
 */
private void initObjects() {
    listUsers = new ArrayList<>();
    userRecyclerAdapterSavedUsers = new UserRecyclerAdapterSavedUsers(listUsers,recyclerViewUsers);

    RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
    recyclerViewUsers.setLayoutManager(mLayoutManager);
    recyclerViewUsers.setItemAnimator(new DefaultItemAnimator());
    recyclerViewUsers.setHasFixedSize(true);
    recyclerViewUsers.setAdapter(userRecyclerAdapterSavedUsers);
    databaseHelper = new DatabaseHelper(activity);

    String emailFromIntent = getIntent().getStringExtra("USERS");
    textViewName.setText(emailFromIntent);

    getDataFromSQLite();
}

/**
 * This method is to fetch all user records from SQLite
 */
private void getDataFromSQLite() {
    // AsyncTask is used that SQLite operation not blocks the UI Thread.
    new AsyncTask<Void, Void, Void>() {
        @Override
        protected Void doInBackground(Void... params) {
            listUsers.clear();
            listUsers.addAll(databaseHelper.getAllUser());

            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            userRecyclerAdapterSavedUsers.notifyDataSetChanged();
        }
    }.execute();
}

}

This is the Query I am using to delete the data

    public void deletePersonRecord(String useridValue, Context mContext) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL("DELETE FROM "+table_login+" WHERE "+userid +"='"+useridValue+"'");
    Toast.makeText(mContext, "Deleted successfully.", Toast.LENGTH_SHORT).show();
    db.close();
}

Here is image of my recycler list

List Items

As I click on an Item It open me a Dialog like this Dialog

When I click on delete this shows me this Clicking on Delete

After that As I pressed back and again open the Data I deleted again open Logcat has no Errors

Here is my update activity

public class UpdateUserRec extends AppCompatActivity {
EditText UserIDUpdate,UserNameUpdate,UserPasswordUpdate,UserRoleUpdate;
Button BtnUserRecUpdate;

DatabaseHelper dbHelper;
String receivedUSERId;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_update_record);
    UserIDUpdate= (EditText) findViewById(R.id.useridupdate);
    UserNameUpdate= (EditText) findViewById(R.id.usernameupdate);
    UserPasswordUpdate= (EditText) findViewById(R.id.userpasswordupdate);
    UserRoleUpdate= (EditText) findViewById(R.id.userroleupdate);
    BtnUserRecUpdate= (Button) findViewById(R.id.userbtnupdate);

    dbHelper = new DatabaseHelper(this);

    try {
        //get intent to get person id
        receivedUSERId= getIntent().getStringExtra("USER_ID");
    } catch (Exception e) {
        e.printStackTrace();
    }
    User user= dbHelper.getUser(receivedUSERId);

    UserIDUpdate.setText(user.getUserid());
    UserNameUpdate.setText(user.getName());
    UserPasswordUpdate.setText(user.getPassword());
    UserRoleUpdate.setText(user.getRole());

    BtnUserRecUpdate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            updateUserFunction();
        }
    });
}

private void updateUserFunction() {
    String useridupdate = UserIDUpdate.getText().toString().trim();
    String usernameupdate = UserNameUpdate.getText().toString().trim();
    String userpasswordupdate = UserRoleUpdate.getText().toString().trim();
    String userroleupdate = UserRoleUpdate.getText().toString().trim();

    if(useridupdate.isEmpty()){
        //error name is empty
        Toast.makeText(this, "Enter User ID", Toast.LENGTH_LONG).show();
    }

    if(usernameupdate.isEmpty()){
        //error name is empty
        Toast.makeText(this, "Enter User Name", Toast.LENGTH_LONG).show();
    }

    if(userpasswordupdate.isEmpty()){
        //error name is empty
        Toast.makeText(this, "Enter the password", Toast.LENGTH_LONG).show();
    }

    if(userroleupdate.isEmpty()){
        //error name is empty
        Toast.makeText(this, "Enter User Role", Toast.LENGTH_LONG).show();
    }

    //create updated person
    User user = new User();

    //call dbhelper update
    dbHelper.updateUser(receivedUSERId, this, user);
    //finally redirect back home
    // NOTE you can implement an sqlite callback then redirect on success delete
    goBackHome();

}

private void goBackHome() {
    startActivity(new Intent(UpdateUserRec.this,UsersListActivity.class));
}

}

You are deleting data from the list that is showing data in RecyclerView . You should keep in mind Database is different entity from your list. Data base is persistent storage for data and list from where you deleting item is non persistent storage . Next time when you get data from Database the list will again fill with items that you previously deleted.

Correct method is

  1. Delete the row from Database
  2. Remove item from list in adapter
  3. notifyItemRemoved(position)

You have this method in SQL class

public List<User> getAllUser() { ... }

Create one more method

public boolean deleteUser(id){ 
    db.delete(DATABASE_TABLE, KEY_NAME + "=" + id, null)
}

On delete item call this method from your adapter with specific Id then do the same as you doing previously.

try changing your delete functionality with this and see if it works

builder.setNeutralButton("Delete", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //go to Remove Item
            DatabaseHelper dbHelper = new DatabaseHelper(mContext);
            dbHelper.deletePersonRecord(listUsers.get(position).getUserid(), mContext);
            listUsers.remove( position);
            notifyItemRemoved(position);
            mRecyclerView.removeViewAt(position);
            notifyItemRangeChanged(position, listUsers.size());
            notifyDataSetChanged();
            dialog.cancel();

        }
    });

EDIT : for your new problem: about updating user

change your setPositiveButton functionality like this

builder.setPositiveButton("Update", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

            //go to update activity
            gotupdateuserActivity(listUsers.get(position).getUserid());
            // dialog.cancel();

        }
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM