使用android studio创建一个小猫论坛,拥有注册登录功能可以查看图片
时间: 2023-08-10 09:40:15 浏览: 98
创建一个小猫论坛需要涉及到很多功能,包括注册登录、查看图片、发表帖子、回复帖子等等。在这里,我提供一个简单的示例,包含注册登录和查看图片的功能。
首先,我们需要创建一个项目,并在布局文件中添加一个 ImageView 组件,用于显示图片。在 MainActivity 中,我们可以通过以下代码实现图片的显示:
```java
public class MainActivity extends AppCompatActivity {
private ImageView mCatImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCatImageView = findViewById(R.id.cat_image_view);
mCatImageView.setImageResource(R.drawable.cat);
}
}
```
其中,R.drawable.cat 是图片资源的 ID,可以在 res/drawable 目录下添加一张名为 cat.png 的图片。
接下来,我们需要实现注册登录功能。可以创建两个 Activity,分别用于注册和登录。在注册界面中,用户需要输入用户名和密码,并在确认密码框中再次输入密码。在登录界面中,用户需要输入已注册的用户名和密码。我们可以使用 SharedPreferences 来保存用户信息,代码如下:
```java
public class RegisterActivity extends AppCompatActivity {
private EditText mUsernameEditText;
private EditText mPasswordEditText;
private EditText mConfirmPasswordEditText;
private Button mRegisterButton;
private SharedPreferences mSharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
mUsernameEditText = findViewById(R.id.username_edit_text);
mPasswordEditText = findViewById(R.id.password_edit_text);
mConfirmPasswordEditText = findViewById(R.id.confirm_password_edit_text);
mRegisterButton = findViewById(R.id.register_button);
mSharedPreferences = getSharedPreferences("user_info", Context.MODE_PRIVATE);
mRegisterButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = mUsernameEditText.getText().toString();
String password = mPasswordEditText.getText().toString();
String confirmPassword = mConfirmPasswordEditText.getText().toString();
if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password) && !TextUtils.isEmpty(confirmPassword)) {
if (password.equals(confirmPassword)) {
SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putString(username, password);
editor.apply();
Toast.makeText(RegisterActivity.this, "注册成功!", Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(RegisterActivity.this, "两次密码输入不一致!", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(RegisterActivity.this, "请填写完整信息!", Toast.LENGTH_SHORT).show();
}
}
});
}
}
public class LoginActivity extends AppCompatActivity {
private EditText mUsernameEditText;
private EditText mPasswordEditText;
private Button mLoginButton;
private SharedPreferences mSharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mUsernameEditText = findViewById(R.id.username_edit_text);
mPasswordEditText = findViewById(R.id.password_edit_text);
mLoginButton = findViewById(R.id.login_button);
mSharedPreferences = getSharedPreferences("user_info", Context.MODE_PRIVATE);
mLoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = mUsernameEditText.getText().toString();
String password = mPasswordEditText.getText().toString();
String savedPassword = mSharedPreferences.getString(username, "");
if (password.equals(savedPassword)) {
Toast.makeText(LoginActivity.this, "登录成功!", Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(LoginActivity.this, "用户名或密码错误!", Toast.LENGTH_SHORT).show();
}
}
});
}
}
```
在以上代码中,我们使用 SharedPreferences 来保存用户信息,key 为用户名,value 为密码。在注册界面中,我们通过 SharedPreferences.Editor 的 putString 方法将用户名和密码保存到 SharedPreferences 中,保存完成后关闭当前 Activity;在登录界面中,我们通过 SharedPreferences 的 getString 方法获取保存的密码,如果输入的密码和保存的密码一致,则登录成功,否则提示用户名或密码错误。
最后,在菜单中添加一个“登录”选项,用户点击后可以跳转到登录界面。代码如下:
```java
public class MainActivity extends AppCompatActivity {
private ImageView mCatImageView;
private SharedPreferences mSharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCatImageView = findViewById(R.id.cat_image_view);
mCatImageView.setImageResource(R.drawable.cat);
mSharedPreferences = getSharedPreferences("user_info", Context.MODE_PRIVATE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
if (item.getItemId() == R.id.login_menu_item) {
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
}
return true;
}
}
```
在以上代码中,我们在 onCreateOptionsMenu 方法中加载了一个菜单布局文件,布局文件中包含一个 id 为 login_menu_item 的菜单项;在 onOptionsItemSelected 方法中,我们判断用户点击的是哪个菜单项,如果是登录项,则跳转到登录界面。
以上是一个简单的小猫论坛的实现,仅包含注册登录和查看图片的功能。如果需要添加更多功能,可以根据需求进行扩展。
阅读全文