簡體   English   中英

如何將 Class 中的值放入我的 TextViewField

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM