0

AsyncTask から非静的メソッドを呼び出す必要があります

このメソッドは onPostExecute で呼び出す必要があります

利用した:

Main.mymethod();

しかし、それは言います:

Cannot make a static reference to the non-static method mymethod() from the type Main

それを修正する方法は?

ありがとう

編集:私は試しました:

    protected void onPostExecute(String result) {
         new Main().mymethod();
    }

スロー:

07-09 01:43:15.248: E/AndroidRuntime(29945): FATAL EXCEPTION: main
07-09 01:43:15.248: E/AndroidRuntime(29945): java.lang.NullPointerException
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.app.Activity.findViewById(Activity.java:1794)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.os.AsyncTask.finish(AsyncTask.java:602)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.os.AsyncTask.access$600(AsyncTask.java:156)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.os.Looper.loop(Looper.java:137)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.app.ActivityThread.main(ActivityThread.java:4575)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at java.lang.reflect.Method.invokeNative(Native Method)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at java.lang.reflect.Method.invoke(Method.java:511)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at dalvik.system.NativeStart.main(Native Method)
4

3 に答える 3

1
mymethod(); call this method simply
mymethod(); you can also pass parameters to it if you have defined parameterized method like mymethod(someObj, someVariable);
于 2013-07-09T00:06:08.177 に答える
0

これ以上コードがなければ、多くの例を示すのは困難ですがAsyncTask、別のクラスであると仮定して、クラスへの参照を送信し、その参照を使用してメソッドを呼び出す必要があります。

MyTask myTask = new MyTask(this);

次に、あなたのAsyncTaskようなもので

class MyTask extends AsyncTask
{
   MyActivity mActivity;
    public MyTask(Activity act)
{
       mActivity = (MyActivity) act;

      ...

      mActivity . method();  // add this wherever you want to call it
}
于 2013-07-08T23:37:15.873 に答える