[英]How do I get the Value out of my Class into my TextViewField
目前,我正在嘗試使用 Android Studio 制作一個 Android 應用程序,其中包含從 API 獲取和發布數據。
我現在的問題是我想在我的應用程序中顯示 POST 請求的響應。 為此,我制作了 TextView TW_Rueckgabe。 我還為此制作了另一種方法,因此它可以顯示請求
public String returnString() {
return fetching_data;
}
但響應未保存在 TW_Rueckgabe 中。
MainActivity.java
final TextView[] TW_Rueckgabe = {findViewById(R.id.textViewRueckgabe)};
Button sendBtn = findViewById(R.id.sendBtn);
sendBtn.setOnClickListener(v -> {
String POST_url = "http://dphost.ddns.net:1573/cool/post.php";
String requestData = "data=" + TW_Benutzername.getText().toString();
POSTRequestTask test = (POSTRequestTask) new POSTRequestTask().execute(POST_url, requestData);
TW_Rueckgabe[0].setText(test.fetching_data);
});
POSTRequestTask Class:
class POSTRequestTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
String url = params[0];
String requestData = params[1];
String response = "";
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// add request header
con.setRequestMethod("POST");
con.setDoOutput(true);
// add request data
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(requestData);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer responseBuffer = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
responseBuffer.append(inputLine);
}
in.close();
response = responseBuffer.toString();
} catch (IOException e) {
e.printStackTrace();
}
return response;
}
@Override
protected void onPostExecute(String result) {
// print result
System.out.println("\n\n\n" + result + "\n\n\n");
fetching_data = result;
}
public String returnString() {
return fetching_data;
}
}
我試圖制作一個新的 Object,然后從 Object 中保存變量,但沒有用。
interface Callback {
void onResponse(String response);
}
MainActivity {
private Callback callback = new Callback() {
@Override
void onResponse(String response) {
TW_Rueckgabe[0].setText(test.fetching_data);
}
}
sendBtn.setOnClickListener(v -> {
String POST_url = "http://dphost.ddns.net:1573/cool/post.php";
String requestData = "data=" + TW_Benutzername.getText().toString();
POSTRequestTask test = new POSTRequestTask(callback).execute(POST_url, requestData);
});
}
class POSTRequestTask(Callback callback) extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
// do your request as you're doing now and return the result
}
@Override
protected void onPostExecute(String result) {
// callback interface method call here
callback.onResponse(result)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.