gpt4 book ai didi

java - Android中如何全局访问SQl​​ite返回的数据?

转载 作者:行者123 更新时间:2023-12-02 05:09:37 26 4
gpt4 key购买 nike

public class MainObj {
private static final MainObj instance = new MainObj();

public static MainObj getInstance() {
return instance;
}

public static class User {
public int account_id;
public String user_id;
public String sip_id;
public String username;
public String fullname;
public boolean active;
public boolean status;

public int getAccount_id() {
return account_id;
}
public void setAccount_id(int account_id) {
Log.e("myphone", account_id+"");
this.account_id = account_id;
}
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getSip_id() {
return sip_id;
}
public void setSip_id(String sip_id) {
this.sip_id = sip_id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getFullname() {
return fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
}
}

我在Android上编写sip应用程序。我有一些有关用户登录的信息。我想做类似的事情。

  1. 具有用户设置的用户对象(存储在 SQlite 中)
  2. 从 SQlite 数据访问用户数据并存储在对象中
  3. 直接使用来自对象的用户数据,例如(在 UI Activity 、 fragment 中......):
User user = new User();Log.i("TAG", user.sip_id);

or

Log.i("TAG", user.getSip_id());
// get user data from table
public HashMap<String, String> getUserDetails() {
HashMap<String, String> user = new HashMap<String, String>();
String selectQuery = "SELECT * FROM user";

SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.moveToFirst();

if (cursor.getCount() > 0) {
MainObj.User user = new MainObj.User();
user.setSip_id(cursor.getString(1));
user.setAccount_id(cursor.getString(2));
.... and so on
}

cursor.close();
db.close();

// return user
return user;
}

我不知道如何正确地进行谷歌搜索,因为我已经搜索了大约 3 个小时。

最佳答案

只需像这样更改代码,您就可以在任何地方访问数据。

import android.util.Log;

public class User {
private static final User instance = new User();

public static User getInstance() {
return instance;
}

private User() {
super();
}

private int account_id;
private String user_id;
private String sip_id;
private String username;
private String fullname;
private boolean active;
private boolean status;

public int getAccount_id() {
return account_id;
}

public void setAccount_id(int account_id) {
Log.e("myphone", account_id + "");
this.account_id = account_id;
}

public String getUser_id() {
return user_id;
}

public void setUser_id(String user_id) {
this.user_id = user_id;
}

public String getSip_id() {
return sip_id;
}

public void setSip_id(String sip_id) {
this.sip_id = sip_id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getFullname() {
return fullname;
}

public void setFullname(String fullname) {
this.fullname = fullname;
}

public boolean isActive() {
return active;
}

public void setActive(boolean active) {
this.active = active;
}

public boolean isStatus() {
return status;
}

public void setStatus(boolean status) {
this.status = status;
}

}

您可以通过像这样访问实例来向用户 obj 设置数据

//get user data from table
public void getUserDetails() {
String selectQuery = "SELECT * FROM user";

SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.moveToFirst();

if (cursor.getCount() > 0) {
//If you want you can hold the reference in a User obj = User.getInstance(); just to write less code
User.getInstance().setSip_id(cursor.getString(1));
User.getInstance().setAccount_id(cursor.getString(2));
.... and so on
}

cursor.close();
db.close();
}

如果您在获取数据后需要某个地方的数据,只需执行以下操作:

mEditText.setText(User.getInstance().getUsername());

关于java - Android中如何全局访问SQl​​ite返回的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com