Java 如何将list或arraylist从AsyncTask类传递到另一个类

Java 如何将list或arraylist从AsyncTask类传递到另一个类,java,android,android-asynctask,Java,Android,Android Asynctask,我有两个类,一个是ReadChequeDetails.java另一个是SearchMain.java 在ReadChequeDetails.java中,我正在检索jason数据并将其显示在listview中 我需要将检索到的数据(例如:chequeNo)传递给 在SearchMain.java 我把ReadChequeDetails.java代码放在下面 package com.example.chequeinfo; public class ReadChequeDetails extends

我有两个类,一个是
ReadChequeDetails.java
另一个是
SearchMain.java

ReadChequeDetails.java
中,我正在检索jason数据并将其显示在listview中

我需要将检索到的数据(例如:
chequeNo
)传递给 在
SearchMain.java

我把
ReadChequeDetails.java
代码放在下面

package com.example.chequeinfo;

public class ReadChequeDetails extends ListActivity implements OnClickListener{


    private ProgressDialog pDialog;
    private static final String READ_COMMENTS_URL ="http://www.xxxx.com/abc.php";
    private Button add,searchoption;

    private static final String TAG_SUCCESS = "success";
    private static final String TAG_POSTID = "post_id";
    private static final String TAG_POSTS = "details";
    private static final String TAG_CHEQUENO = "cheque_no";
    private static final String TAG_BANKNAME = "bank_name";
    private static final String TAG_AMOUNT = "amount";
    private static final String TAG_CHEQUEDATE = "cheque_date";
    private static final String TAG_CHEQUEOWNER = "cheque_owner";
    private static final String TAG_SAVEDDATE = "saved_date";
    private static final String TAG_SAVEDBY = "saved_by";


    private JSONArray mComments = null;
    private ArrayList<HashMap<String, String>> mCommentList;
    ArrayList<String> newlist;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.read_cheque_details);
        add = (Button)findViewById(R.id.post_details);

        //search option button which take to the SearchMain.java class
        searchoption=(Button)findViewById(R.id.mainsearch);
        add.setOnClickListener(this);
        searchoption.setOnClickListener(this);
    }

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        new LoadComments().execute();
        // loading the comments via AsyncTask
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId()){
            case R.id.post_details:
                Intent i = new Intent("com.example.chequeinfo.ADDCHEQUEDETAILS");
                startActivity(i);
                break;
            case R.id.mainsearch:
                Intent i1 = new Intent("com.example.chequeinfo.SEARCHMAIN");
                startActivity(i1);
                break;
        }
    }

    public void updateJSONdata() {
        mCommentList = new ArrayList<HashMap<String, String>>();
        JSONParser jParser = new JSONParser();
        JSONObject json = jParser.getJSONFromUrl(READ_COMMENTS_URL);

        try {
            mComments = json.getJSONArray(TAG_POSTS);
            for (int i = 0; i < mComments.length(); i++) {
                JSONObject c = mComments.getJSONObject(i);

                String postId = c.getString(TAG_POSTID);
                String chequeNo = c.getString(TAG_CHEQUENO);
                String bankName = c.getString(TAG_BANKNAME);
                String amount = c.getString(TAG_AMOUNT);
                String chequeDate = c.getString(TAG_CHEQUEDATE);
                String chequeOwner = c.getString(TAG_CHEQUEOWNER);
                String savedDate = c.getString(TAG_SAVEDDATE);
                String savedBy = c.getString(TAG_SAVEDBY);

                //newlist is a String type array list which i need to pass into the AutocompletetextView 
                //which is referenced in SearchMain.java 

                newlist.add(chequeNo);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    public class LoadComments extends AsyncTask<Void, Void, Boolean> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(ReadChequeDetails.this);
            pDialog.setMessage("Loading Details...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        @Override
        protected Boolean doInBackground(Void... arg0) {
            updateJSONdata();
            return null;
        }

        @Override
        protected void onPostExecute(Boolean result) {
            super.onPostExecute(result);
            pDialog.dismiss();
        }
    }
}
package com.example.chequeinfo;
公共类ReadChequeDetails扩展ListActivity实现OnClickListener{
私人对话;
私有静态最终字符串读取\u注释\u URL=”http://www.xxxx.com/abc.php";
私人按钮添加,搜索选项;
私有静态最终字符串标记_SUCCESS=“SUCCESS”;
私有静态最终字符串标记\u POSTID=“post\u id”;
私有静态最终字符串TAG_POSTS=“details”;
私有静态最终字符串标记\u CHEQUENO=“check\u no”;
私有静态最终字符串标记\u BANKNAME=“bank\u name”;
私有静态最终字符串标记\u AMOUNT=“AMOUNT”;
私有静态最终字符串TAG\u CHEQUEDATE=“check\u date”;
私有静态最终字符串标记\u CHEQUEOWNER=“check\u owner”;
私有静态最终字符串标记\u SAVEDDATE=“saved\u date”;
私有静态最终字符串标记_SAVEDBY=“saved_by”;
私有JSONArray mComments=null;
私有数组列表mCommentList;
ArrayList新列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.read_check_details);
add=(按钮)findViewById(R.id.post\u详细信息);
//搜索选项按钮,该按钮指向SearchMain.java类
searchoption=(按钮)findViewById(R.id.mainsearch);
add.setOnClickListener(这个);
searchoption.setOnClickListener(此);
}
@凌驾
受保护的void onResume(){
//TODO自动生成的方法存根
super.onResume();
新建LoadComments().execute();
//通过AsyncTask加载注释
}
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
开关(v.getId()){
案例R.id.post_详细信息:
意向i=新意向(“com.example.chequeinfo.ADDCHEQUEDETAILS”);
星触觉(i);
打破
案例R.id.mainsearch:
意向i1=新意向(“com.example.chequeinfo.SEARCHMAIN”);
星触觉(i1);
打破
}
}
public void updateJSONdata(){
mCommentList=newarraylist();
JSONParser jParser=新的JSONParser();
JSONObject json=jParser.getJSONFromUrl(读取注释URL);
试一试{
mComments=json.getJSONArray(TAG_POSTS);
对于(int i=0;i
看起来您应该按原意发送它

case R.id.mainsearch:
 Intent i1 = new Intent("com.example.chequeinfo.SEARCHMAIN");
 i1.putStringArrayListExtra("cheque_list", newlist);

 startActivity(i1);
 break;
}
然后在SearchMain.java中:

//Make this a member variable:
ArrayList<String> chequeList;

//in onCreate:
Intent i = getIntent();      
chequeList = i.getStringArrayListExtra("cheque_list");
//将其设为成员变量:
ArrayList支票表;
//在onCreate中:
Intent i=getIntent();
支票列表=i.getStringArrayListExtra(“支票列表”);
参考资料:


看起来你应该把它按原意发送出去

case R.id.mainsearch:
 Intent i1 = new Intent("com.example.chequeinfo.SEARCHMAIN");
 i1.putStringArrayListExtra("cheque_list", newlist);

 startActivity(i1);
 break;
}
然后在SearchMain.java中:

//Make this a member variable:
ArrayList<String> chequeList;

//in onCreate:
Intent i = getIntent();      
chequeList = i.getStringArrayListExtra("cheque_list");
//将其设为成员变量:
ArrayList支票表;
//在onCreate中:
Intent i=getIntent();
支票列表=i.getStringArrayListExtra(“支票列表”);
参考资料:


看起来你应该把它按原意发送出去

case R.id.mainsearch:
 Intent i1 = new Intent("com.example.chequeinfo.SEARCHMAIN");
 i1.putStringArrayListExtra("cheque_list", newlist);

 startActivity(i1);
 break;
}
然后在SearchMain.java中:

//Make this a member variable:
ArrayList<String> chequeList;

//in onCreate:
Intent i = getIntent();      
chequeList = i.getStringArrayListExtra("cheque_list");
//将其设为成员变量:
ArrayList支票表;
//在onCreate中:
Intent i=getIntent();
支票列表=i.getStringArrayListExtra(“支票列表”);
参考资料:


看起来你应该把它按原意发送出去

case R.id.mainsearch:
 Intent i1 = new Intent("com.example.chequeinfo.SEARCHMAIN");
 i1.putStringArrayListExtra("cheque_list", newlist);

 startActivity(i1);
 break;
}
然后在SearchMain.java中:

//Make this a member variable:
ArrayList<String> chequeList;

//in onCreate:
Intent i = getIntent();      
chequeList = i.getStringArrayListExtra("cheque_list");
//将其设为成员变量:
ArrayList支票表;
//在onCreate中:
Intent i=getIntent();
支票列表=i.getStringArrayListExtra(“支票列表”);
参考资料:


您需要整个数组,还是只需要数组中的一项?是的,我需要将整个新列表(arraylist)放入我的SearchMain.java中,并将该arraylist传递给SearchMain.java中引用的autocompletetextview。您需要整个数组,还是只需要数组中的一项?是的,我需要整个新列表(arraylist)进入我的SearchMain.java,我需要通过