我目前正在为简单的游戏应用程序构建登录系统。我想要实现的目标如下:当用户登录时,我希望在登录后显示用户访问的活动中的前5个高分。
我从数据库获得的响应是一个JSON编码的字符串,如下所示:
{"success":true,"toplist":
[{"username":"Tom","score":"4200"},
{"username":"John","score":"2303"},
{"username":"Benjamin","score":"700"},
{"username":"Michael","score":"648"},
{"username":"Daniel","score":"500"}]
}
从这里开始,我想“处理”并将前5个信息传递给userAreaActivity,然后在表格中显示前5个。
这是我到目前为止处理响应的内容:
bSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String username = etUsername.getText().toString();
final String password = etPassword.getText().toString();
Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success");
if(success){
Intent userAreaIntent = new Intent(LoginActivity.this, UserAreaActivity.class);
LoginActivity.this.startActivity(userAreaIntent);
}
else
{
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
builder.setMessage("Login failed!")
.setNegativeButton("Retry", null)
.create()
.show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
LoginRequest loginRequest = new LoginRequest(username, password, responseListener);
RequestQueue queue = Volley.newRequestQueue(LoginActivity.this);
queue.add(loginRequest);
}
});
如果它有用,这就是我的UserAreaActivity.Java的样子:
public class UserAreaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_area);
final TableLayout tlHighscores = (TableLayout) findViewById(R.id.tlHighscores);
Intent intent = getIntent();
}
}
如果有人能给我一些关于如何以最方便的方式做到这一点的指导,我会很激动。
答案 0 :(得分:0)
你可以简单地这样做
Intent userAreaIntent = new Intent(LoginActivity.this, UserAreaActivity.class);
userAreaIntent.putString("data", jsonResponse.toString());
LoginActivity.this.startActivity(userAreaIntent);
在UserAreaActivity中
JSONObject jsonObj = new JSONObject(getIntent().getStringExtra("data"));
一旦你获得了jsonObj,你就可以解析它,无论如何都可以使用它。
答案 1 :(得分:0)
这是Intent对象的用途 - 提供意图以及相关信息。你可以这样做:
Intent intent = new Intent(this,UserAreaActivity.class); intent.putString(“key”,“value”); startActivity(意向);
现在,您可以在接收活动中执行intent.getStringExtra(“key”)来提取值。您可以传递整个JSON字符串并以这种方式检索信息。