Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从数据库中检索数据并将该数据传递到下一个活动_Java_Android - Fatal编程技术网

Java 如何从数据库中检索数据并将该数据传递到下一个活动

Java 如何从数据库中检索数据并将该数据传递到下一个活动,java,android,Java,Android,但我不知道如何编码这个,我使用在线数据库000webhost。我的问题是,当我单击“检索”按钮时,它将在下一个活动中发布数据库的内容,即MainActivity.class中的print.class这是我的代码 主课 package com.example.child.retrieve; 导入android.content.Intent; 导入android.os.Bundle; 导入android.support.v7.app.AlertDialog; 导入android.support.v7

但我不知道如何编码这个,我使用在线数据库000webhost。我的问题是,当我单击“检索”按钮时,它将在下一个活动中发布数据库的内容,即MainActivity.class中的print.class这是我的代码

主课

package com.example.child.retrieve;
导入android.content.Intent;
导入android.os.Bundle;
导入android.support.v7.app.AlertDialog;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入com.android.volley.NetworkResponse;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.ServerError;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.HttpHeaderParser;
导入com.android.volley.toolbox.volley;
导入com.example.child.retrieve.LoginRequest;
导入com.example.child.retrieve.R;
导入com.example.child.retrieve.print;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.io.UnsupportedEncodingException;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终按钮bLogin=(按钮)findViewById(R.id.ret);
bLogin.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Response.Listener responseListener=新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject jsonResponse=新的JSONObject(响应);
boolean success=jsonResponse.getBoolean(“success”);
如果(成功){
意向意向=新意向(MainActivity.this、print.class);
MainActivity.this.startActivity(意图);
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
};
LoginRequest LoginRequest=新的LoginRequest(responseListener);
RequestQueue=Volley.newRequestQueue(MainActivity.this);
添加(loginRequest);
}
});
}
/*导入com.android.volley.toolbox.HttpHeaderParser*/
公共无效onErrorResponse(截击错误){
//自f605da3起,以下各项应起作用
NetworkResponse=错误。NetworkResponse;
if(error instanceof ServerError&&response!=null){
试一试{
String res=新字符串(response.data,
HttpHeaderParser.parseCharset(response.headers,“utf-8”);
//现在,您可以使用任何反序列化程序来理解数据
JSONObject obj=新的JSONObject(res);
}捕获(不支持DencodingException e1){
//无法将数据正确解码为字符串
e1.printStackTrace();
}捕获(JSONException e2){
//返回的数据不是JSONObject?
e2.printStackTrace();
}
}
}
}
MainActivity.xml


正在加载的数据库LoginRequest.class

package com.example.child.retrieve;
导入com.android.volley.Request;
导入com.android.volley.Response;
导入com.android.volley.toolbox.StringRequest;
导入java.util.HashMap;
导入java.util.Map;
/**
*由Child于2017年1月31日创建。
*/
公共类LoginRequest扩展了StringRequest{
私有静态最终字符串登录\u请求\u URL=”http://cedportfolio.000webhostapp.com/Login.php";
私有映射参数;
公共登录请求(Response.Listener){
super(Request.Method.POST,LOGIN\u Request\u URL,listener,null);
params=新的HashMap();
}
@凌驾
公共映射getParams(){
返回参数;
}
}
打印类

package com.example.child.retrieve;
导入android.app.Activity;
导入android.os.Bundle;
/**
*由Child于2017年7月21日创建。
*/
公共类打印扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.print);
}
}

如果要将数据从一个活动传递到另一个活动,则需要创建一个
可包裹的对象。检查

您将需要这样做:

public class MyData implements Parcelable {
    ...
}
解析响应并将其传递给新活动

MyData data = parseJson(jsonResponse)
Intent intent = new Intent(MainActivity.this, print.class);
intent.putParcelable("data", data);
MainActivity.this.startActivity(intent);
public class print extends Activity {

    ...
    MyData data = getIntent().getParcelableExtra("data");
    ...
}
在新活动中恢复它

MyData data = parseJson(jsonResponse)
Intent intent = new Intent(MainActivity.this, print.class);
intent.putParcelable("data", data);
MainActivity.this.startActivity(intent);
public class print extends Activity {

    ...
    MyData data = getIntent().getParcelableExtra("data");
    ...
}

请注意,在活动之间传递大对象可能会导致性能下降。您应该考虑其他策略,比如在“接收者”活动

传递一些ID和获取数据,登录返回大量数据。无聊的。最好返回一个令牌并使用该令牌检索数据。还有,存储普通密码?真正地您应该在存储之前对其进行散列。你知道,安全和那些东西只是一个例子,它不是一个真实的数据库,它是为了学校的目的。看看这个答案:可能是重复的,先生,请检查图片,它包括数据库。数据不在当前活动中。数据来自数据库。所以如果我点击检索按钮。上面的图片将发布到print.class你说的“上面的图片将发布到print.class”是什么意思?是的,这是我的数据库。我想打印print.classe中的所有内容,然后您的服务器将需要一个端点来返回您需要的数据