java - 如何使用 putExtra 从 Activity 向 Java 类发送数据?
问题描述
我想在登录成功后将用户名发送到另一个 Java 类。
这是我的 MainActivity.java 的一个片段:
public class CheckLogin extends AsyncTask<String, String, String> {
String msg ="";
Boolean isSuccess = false;
protected void onPreExecute() {
}
@Override
protected String doInBackground(String... strings) {
String username = loginUsername.getText().toString();
String password = loginPassword.getText().toString();
UserDetails ud = new UserDetails(username,password);
if (DbConnectionClass.connection == null) {
new DbConnectionClass().connectDB();
}
if (DbConnectionClass.connection != null) {
Statement statement = null;
try {
statement = DbConnectionClass.connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM USERLOGINDETAILS_T WHERE user_name='"+ ud.getUsername() +"' AND user_password='"+ud.getPassword()+"'");
if(resultSet.next())
{
msg = "Login Successful";
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
}
});
isSuccess = true;
Intent startIntent = new Intent(getApplicationContext(), TabbedActivity.class);
//PROBLEM HERE
Intent i = new Intent(MainActivity.this, taobaoListAdapter.class);
i.putExtra("Key", username);
//***
startIntent.putExtra("UserLoginDetails", username); //send user details to tabbedactivity
startActivity(startIntent);
}
else if (username.trim().equals("") || password.trim().equals("")) {
msg = "Please Enter Username and Password";
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
}
});
}
else
{
msg = "Username or Password Incorrect";
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
}
});
isSuccess = false;
}
}
catch(SQLException e)
{
}
}
return msg;
}
}
但是在我的接收类中taobaoListAdapter.java
,当我使用String s = getIntent().getExtras("UserLoginDetails");
getIntent() 时显示错误。我相信这是由于 Java 类没有扩展 Activity。
我该如何解决这个问题?我已经查看了与我的类似的其他问题,但无法找到解决方案。
解决方案
您需要将该类扩展到 appcompat 活动。您正在将数据发送到适配器。尝试在 appcompat 活动中获取数据并使用构造函数将其传输到适配器。
推荐阅读
- python - 对于列表中的多个字符串,如何查找字符串中以大写字母开头的所有单词
- python - 如何通过 Selenium 和 Python 使用 classname 属性定位最后一个 Web 元素
- flutter - 在 Dart 中抛出异常的性能成本是多少?
- azure - Azure Devops Pipeline ACR 部署到 Web 应用容器
- python - input a number in a while loop for a python bowling program
- python-3.x - 使用 self 参数在循环中创建和调用自定义函数名称
- laravel - 如何重置 Xampp 的默认页面?
- postgresql - 针对多个值查询 Postgres 中的 jsonb 列
- swagger - 用于 Spring Data Rest 的 Swagger 2 或 3
- javascript - 我该如何解决 [Vue 警告]:数据()中的错误:Laravel Vue 中的“ReferenceError:total is not defined”