在 android studio 中使用 SQLite 显示上次登录的用户数据
Posted
技术标签:
【中文标题】在 android studio 中使用 SQLite 显示上次登录的用户数据【英文标题】:show last logged in user data using SQLite in android studio 【发布时间】:2021-08-28 03:04:53 【问题描述】:我想在登录页面中显示最后登录的用户以在 TextView 中设置。我正在使用 SQLite 来存储数据。谁能建议我如何进行它的操作代码。 我已经为 SQLite 完成了编码,但我不知道这样做。 另外我想让用户保持登录状态,直到我自己注销。
主要活动:
public class MainActivity extends AppCompatActivity
TextInputEditText etLink;
TextView tvIP;
Button btnSubmit;
DatabaseHelper databaseHelper;
SQLiteDatabase sqLiteDatabase;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etLink=findViewById(R.id.etLink);
tvIP=findViewById(R.id.tvIP);
btnSubmit=findViewById(R.id.btnSubmit);
btnSubmit.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
String IP_ADDRESS=etLink.getText().toString();
databaseHelper=new DatabaseHelper(MainActivity.this);
sqLiteDatabase=databaseHelper.getWritableDatabase();
databaseHelper.addData(IP_ADDRESS,sqLiteDatabase);
Toast.makeText(getApplicationContext(), "One row inserted", Toast.LENGTH_LONG).show();
databaseHelper.close();
);
数据库助手:
public class DatabaseHelper extends SQLiteOpenHelper
public static final String IP_ADDRESS="IP_Address";
public static final String TABLE="user_tbl";
public static final String DATABASE="user";
public static final int DATABASE_VERSION=1;
public static final String QUERY="create table " + TABLE + "(" + IP_ADDRESS + " text);";
public DatabaseHelper(Context context)
super(context, DATABASE, null, DATABASE_VERSION);
Log.d("DATABASE", "Database Created or Opened");
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase)
sqLiteDatabase.execSQL(QUERY);
Log.d("DATABASE", "Table Created");
public void addData(String ip_address, SQLiteDatabase sqLiteDatabase)
ContentValues contentValues=new ContentValues();
contentValues.put(IP_ADDRESS, ip_address);
sqLiteDatabase.insert(TABLE, null, contentValues);
Log.d("DATABASE", "Data Inserted");
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1)
【问题讨论】:
【参考方案1】:您可以使用共享首选项进行会话管理。创建一个会话类,并在您登录时调用 setStatus 方法并将其设置为 true。同样,当您注销时,将 setStatus 方法设置为 false。
只需创建会话类的实例即可使用它。
public class Session
private final SharedPreferences prefs;
public Session(Context cntx)
prefs = PreferenceManager.getDefaultSharedPreferences(cntx);
public boolean setStatus(boolean b)
if(b)
prefs.edit().putString("status","true").apply();
else
prefs.edit().putString("status","false").apply();
return b;
public boolean getStatus()
String status = prefs.getString("status","");
return status.equals("true");
public String getUsername()
return prefs.getString("name","");
public void setUsername(String name)
prefs.edit().putString("name",name);
要使用这个类,请创建它的一个实例。
Session sess = new Session
sess.setStatus(true)// On Successful login set true
sess.setStatus(false)// On Successful logout set false
【讨论】:
以上是关于在 android studio 中使用 SQLite 显示上次登录的用户数据的主要内容,如果未能解决你的问题,请参考以下文章
怎样在Android Studio中使用Uiautomator
在 android studio 中使用设备调试时,Android Logcat 为空
在android项目和库中使用支持库(Android Studio)