Java 如何调用方法

Java 如何调用方法,java,android,class,methods,return,Java,Android,Class,Methods,Return,如何在不同的类中调用方法并在MainActivity中获得结果 我正在调用API中的Get方法。但我不确定如何将结果数据传回mainActivity: 我的代码 CallAPI类: ... public void Get() { Log.i(TAG, "GET()"); // GET method example new AsyncTask<Void, Void, String>() { protected S

如何在不同的类中调用方法并在MainActivity中获得结果

我正在调用API中的Get方法。但我不确定如何将结果数据传回mainActivity:

我的代码

CallAPI类:

...
public void Get() {
        Log.i(TAG, "GET()");
        // GET method example
        new AsyncTask<Void, Void, String>() {

            protected String doInBackground(Void... parameters) {
                API api = new API(mApiKey, mApiSecret);

                List<NameValuePair> params = new ArrayList<NameValuePair>();       
                params.add(new BasicNameValuePair("api_key", mApiKey));                     

                return api.get("category", params);
            }

            protected void onPostExecute(String result) {  // *** >I NEED THIS result< ***
                Log.i(TAG + " - APIRESULT", "GET() => " + result);
            }

        }.execute();
    }//end Get
...
...
super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main)

           mCallApi.Get();

...
因此,在MainActivity中,我可以运行该方法,但不确定如何在此处显示结果日期


谢谢

使用界面。因为代码是异步的,所以不能使用返回值

interface myCallBack(){
    public void callBack( String result );
}

public void Get(final myCallBack callback) {
    Log.i(TAG, "GET()");
    // GET method example
    new AsyncTask<Void, Void, String>() {

        protected String doInBackground(Void... parameters) {
            API api = new API(mApiKey, mApiSecret);

            List<NameValuePair> params = new ArrayList<NameValuePair>();       
            params.add(new BasicNameValuePair("api_key", mApiKey));                     

            return api.get("category", params);
        }

        protected void onPostExecute(String result) {  // *** >I NEED THIS result< ***
            Log.i(TAG + " - APIRESULT", "GET() => " + result);
            callback.callBack( result );
        }

    }.execute();
}
A.public void Get(){}这没有任何用于将值返回给调用方的数组 即使它有一个返回类型,它是不相关的,因为您在方法return中生成了一个AsyncTask 价值与操作结果无关


现在来谈谈你的问题,这可以通过观察者设计模式来解决。这是我以前对类似问题的回答,请仔细阅读。这会解决你的问题

为方法提供返回类型。。当你调用这个方法时。。。将响应存储在字符串对象中。。
get( new myCallBack(){ 
   public void callBack(String result ){
   //do something with result.
   }
} 
);