क्या आप जावा में लिखे गए इस कॉलबैक को कोटलिन में कैसे कर सकते हैं, कोड मूल रूप से एक ऐसे मामले पर आधारित है जो वॉली लाइब्रेरी के साथ अनुरोध करता है और मुझे इंटरफ़ेस के माध्यम से प्रतिक्रिया प्राप्त करने की आवश्यकता है, मैं इसकी सराहना करता हूं


वॉली क्लास

...
    public void stringRequest(String url,final VolleyStringResponse volleyResponse){
        StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                volleyResponse.onSuccess(response);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                volleyResponse.onError(error);
            }
        });
        VolleySingleton.getInstance(context).addToRequestQueue(stringRequest);
    }

    //Interface

    public interface VolleyStringResponse{
        void onSuccess(String response);
        void onError(VolleyError error);
    }

मुख्य गतिविधि वर्ग

. . . 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        VolleyRequest volleyRequest = new VolleyRequest(this);
        volleyRequest.stringRequest(getUrlAPI(), new VolleyRequest.VolleyStringResponse() {
            final TextView textView = findViewById(R.id.text);
            @Override
            public void onSuccess(String response) {
                    textView.setText(response);
            }

            @Override
            public void onError(VolleyError error) {
                textView.setText(error.getMessage());
            }
        });
    }
}
1
Rodolfo Silvera 7 अक्टूबर 2020, 04:52

1 उत्तर

सबसे बढ़िया उत्तर

वॉली क्लास


    fun stringRequest(url: String?, volleyResponse: VolleyStringResponse) {
        val stringRequest = StringRequest(Request.Method.GET, url, object: Listener<String?>() {
            fun onResponse(response: String?) {
                volleyResponse.onSuccess(response)
            }
        }, object: ErrorListener() {
            fun onErrorResponse(error: VolleyError?) {
                volleyResponse.onError(error)
            }
        })
        VolleySingleton.getInstance(context).addToRequestQueue(stringRequest)
    }

    //Interface
    interface VolleyStringResponse {
        fun onSuccess(response: String?)
        fun onError(error: VolleyError?)
    }

मुख्य गतिविधि वर्ग

    val volleyRequest = VolleyRequest(this)
    volleyRequest.stringRequest(getUrlAPI(), object: VolleyStringResponse() {
        val textView: TextView = findViewById(R.id.text)
        override fun onSuccess(response: String?) {
            textView.text = response
        }

        fun onError(error: VolleyError) {
            textView.text = error.message
        }
    })
2
GuanHongHuang 7 अक्टूबर 2020, 05:00