在外部类中调用类

时间:2015-12-09 20:32:23

标签: android class

我创建包含函数的类。但我想在MainActivity中的类和类中添加AsyncTask类,但我不知道我该怎么做:(

外部课程:

public class Function {

    public Context mContext;
    public Activity mactivity;

    public Function(Context _context, Activity _activity)
    {
        mContext = _context;
        mactivity = _activity;
    }

 public class GetJson extends AsyncTask<String,String,JSONObject>{

        @Override
        protected void onPreExecute(){

        }

        @Override
        protected JSONObject doInBackground(String... params) {
            return null;
        }

        @Override
        public void onPostExecute(JSONObject getJson){

        }
    }

我知道我可以用这个方法打电话:

Function _func = new Function(getBaseContext(),MainActivity.this);
_func.someFunction();

但我不知道如何打电话。

此代码返回错误

_func.GetJson.execute();

2 个答案:

答案 0 :(得分:0)

谢谢来自scrappedcola,我找到了答案。

public class Function {

    public Context mContext;
    public Activity mactivity;

    public Function(Context _context, Activity _activity)
    {
        mContext = _context;
        mactivity = _activity;
    }

 public void runGetJson(){
        new GetJson().execute();
    }

 public class GetJson extends AsyncTask<String,String,JSONObject>{

        @Override
        protected void onPreExecute(){

        }

        @Override
        protected JSONObject doInBackground(String... params) {
            return null;
        }

        @Override
        public void onPostExecute(JSONObject getJson){

        }
    }

答案 1 :(得分:0)

您无法致电public class Login extends Fragment { /**/ } ,因为_func.GetJson.execute();它不是静态方法,您就是这样称呼的。

您应该创建一个GetJson对象并调用execute()。如果要在Function之外创建对象,则应使execute()为静态。

我的建议是,如果要创建一个扩展GetJson的内部类,请在要用于执行它的类中执行它。如果你不能,因为你想在多个类中执行AsyncTask,那么只为该AsyncTask创建一个类。