安卓studio实现登录和注册,用户信息本地保存,用户名唯一。登录成功之后访问好友列表,好友列表的数据来自数据库
时间: 2023-12-01 08:03:25 浏览: 28
实现登录和注册,用户信息本地保存,用户名唯一可以分为以下几个步骤:
1.设计数据库表,包括用户信息表和好友列表表。
2.实现注册功能,将用户信息插入到用户信息表中。在插入之前需要判断用户名是否唯一。
3.实现登录功能,验证用户名和密码是否正确,并将用户信息存储到本地,可以使用SharedPreferences或者SQLite等方式存储。
4.访问好友列表,从数据库中查询好友列表数据,并显示在界面上。
下面是一个简单的示例代码:
1.设计数据库表
用户信息表:
```sql
CREATE TABLE user_info (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username VARCHAR(50) UNIQUE,
password VARCHAR(50),
nickname VARCHAR(50),
avatar VARCHAR(100)
);
```
好友列表表:
```sql
CREATE TABLE friend_list (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER,
friend_id INTEGER,
friend_name VARCHAR(50),
friend_avatar VARCHAR(100)
);
```
2.实现注册功能
```java
public boolean register(String username, String password, String nickname, String avatar) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("username", username);
values.put("password", password);
values.put("nickname", nickname);
values.put("avatar", avatar);
long result = db.insert("user_info", null, values);
db.close();
return result != -1;
}
```
3.实现登录功能
```java
public boolean login(String username, String password) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query("user_info", null, "username=? and password=?", new String[]{username, password}, null, null, null);
boolean result = cursor.getCount() > 0;
if (result) {
SharedPreferences.Editor editor = context.getSharedPreferences("user_info", Context.MODE_PRIVATE).edit();
editor.putString("username", username);
editor.putString("password", password);
editor.apply();
}
cursor.close();
db.close();
return result;
}
```
4.访问好友列表
```java
public List<Friend> getFriendList(int userId) {
List<Friend> friendList = new ArrayList<>();
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from friend_list where user_id=?", new String[]{String.valueOf(userId)});
while (cursor.moveToNext()) {
Friend friend = new Friend();
friend.setId(cursor.getInt(cursor.getColumnIndex("friend_id")));
friend.setName(cursor.getString(cursor.getColumnIndex("friend_name")));
friend.setAvatar(cursor.getString(cursor.getColumnIndex("friend_avatar")));
friendList.add(friend);
}
cursor.close();
db.close();
return friendList;
}
```
以上就是一个简单的安卓studio实现登录和注册,用户信息本地保存,用户名唯一,访问好友列表的示例代码。注意:该示例代码仅供参考,具体实现还需要根据实际情况进行调整。