Android 如何将asynk任务中的arraylist值设置为其他方法

Android 如何将asynk任务中的arraylist值设置为其他方法,android,Android,我想将asynk任务方法中的memberlist值设置为onresume方法,但我得到的是空值。我如何获得该值 String.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Android Alphabetic IndexBar Scroller</string> <string-array name="alphab

我想将asynk任务方法中的memberlist值设置为onresume方法,但我得到的是空值。我如何获得该值

String.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Android Alphabetic IndexBar Scroller</string>
    <string-array name="alphabtes_array">
        <item>A</item>
        <item>B</item>
        <item>C</item>
        <item>D</item>
        <item>E</item>
        <item>F</item>
        <item>G</item>
        <item>H</item>
        <item>I</item>
        <item>J</item>
        <item>K</item>
        <item>L</item>
        <item>M</item>
        <item>N</item>
        <item>O</item>
        <item>P</item>
        <item>Q</item>
        <item>R</item>
        <item>S</item>
        <item>T</item>
        <item>U</item>
        <item>V</item>
        <item>W</item>
        <item>X</item>
        <item>Y</item>
        <item>Z</item>
    </string-array>
    <string-array name="base_array">
        <item >Alphabets</item>
        <item >Apple</item>
        <item >Airplane</item>
        <item >Banana</item>
        <item >Boy</item>
        <item >Bicycle</item>
        <item >Car</item>
        <item >Carrot</item>
        <item >Dog</item>
        <item >Donkey</item>
        <item >Flight</item>
        <item >Flower</item>
        <item >Hover</item>
        <item >Howard</item>
        <item >Holland</item>
        <item >Hug</item>
        <item >House</item>
        <item >Hallow</item>
        <item >Icecream</item>
        <item >Jug</item>
        <item >Jassmine</item>
        <item >Jely Bean</item>
        <item >Khushboo</item>
        <item >Kamal</item>
        <item >Mango</item>
        <item >Margo</item>
        <item >Melon</item>
        <item >Mouse</item>
        <item >Narrow</item>
        <item >Noose</item>
        <item >Nilon</item>
        <item >Oops</item>
        <item >Owl</item>
        <item >Parrot</item>
        <item >Pencil</item>
        <item >Palates</item>
        <item >Pillow</item>
        <item >Queue</item>
        <item >Qwk</item>
        <item >Rat</item>
        <item >Run</item>
        <item >Ranbeer</item>
        <item >Raina</item>
        <item >Ribbon</item>
        <item >Swallow</item>
        <item >Sarawati</item>
        <item >Singing</item>
        <item >Shine</item>
        <item >Tea</item>
        <item >Tamarind</item>
        <item >Tiger</item>
        <item >Vivek</item>
        <item >Voilet</item>
        <item >Voilence</item>
        <item >Value</item>
        <item >Vent</item>
        <item >Wall</item>
        <item >Wand</item>
        <item >X</item>
        <item >Yogurt</item>
        <item >Yatch</item>
        <item >Z</item>


    </string-array>
    <string name="header">Android Alphabetic IndexBar Scroller</string>
    <string name="dot">.</string>

</resources>
这是我的密码

    public class IndexBar extends Activity implements OnItemClickListener {

        HashMap<Character, Integer> alphabetToIndex;
        static String TAG = "IndexBar";
        int number_of_alphabets = -1;
        static IndexBarHandler handler;
        private EditText editsearch;
        private ArrayAdapter<String> adapter1;
        public  ArrayAdapter<String> mainadapter;
        public ArrayList<String> memberlist;
        public ArrayList<String> first;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.indexbarlayout);
            editsearch = (EditText) findViewById(R.id.textview_header);
            editsearch.addTextChangedListener(new TextWatcher() {


                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub
                    mainadapter.getFilter().filter(s.toString());
                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub

                }
            });
            getScreenHeight(this);
            getScreenWidth(this);
            handler = new IndexBarHandler(this);

        }

        protected void onResume() {
            super.onResume();

            /* populating the base listview */
            CustomListView mainlistview = (CustomListView) findViewById(R.id.listView_main);
            String main_list_array[] = getResources().getStringArray(
                    R.array.base_array);
            if (main_list_array == null) {
                Log.d(TAG, "Array of the main listview is null");
                return;
            }
            mainadapter = new ArrayAdapter<String>(
                    getBaseContext(), R.layout.mainlistview_row/*
                     * android.R.layout.
                     * simple_list_item_1
                     */,
                     main_list_array);
            mainlistview.setAdapter(mainadapter);
            populateHashMap();

        }

        public int convertDipToPx(int dp, Context context) { // 10dp=15px
            Resources r = context.getResources();
            float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp,
                    r.getDisplayMetrics());
            return (int) px;
        }

        public int convertPxtoDip(int pixel) { // 15px=23dp
            float scale = getResources().getDisplayMetrics().density;
            int dips = (int) ((pixel / scale) + 0.5f);
            return dips;
        }

        /**
         * Determines the width of the screen in pixels
         * 
         * @return width
         */
        public int getScreenWidth(Activity activity) {
            Display display = activity.getWindowManager().getDefaultDisplay();
            int width = display.getWidth();
            Log.d(TAG, "Screen Width in pixels=" + width);
            return width;
        }

        /**
         * Determines the height of the screen in pixels
         * 
         * @return height
         */
        public int getScreenHeight(Activity activity) {
            Display display = activity.getWindowManager().getDefaultDisplay();
            int height = display.getHeight();
            Log.d(TAG, "Screen Height in pixels=" + height);
            return height;
        }

        public float pixelsToSp(Context context, Float px) {
            float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
            Log.d(TAG, "GetTextSize in pixels=" + px + " In Sp="
                    + (px / scaledDensity));
            return px / scaledDensity;
        }

        public void onItemClick(AdapterView<?> arg0, View view, int arg2, long arg3) {

            if (!(view instanceof TextView || view == null))
                return;
            TextView rowview = (TextView) view;

            CharSequence alpahbet = rowview.getText();

            if (alpahbet == null || alpahbet.equals(""))
                return;

            String selected_alpahbet = alpahbet.toString().trim();
            Integer position = alphabetToIndex.get(selected_alpahbet.charAt(0));
            Log.d(TAG, "Selected Alphabet is:" + selected_alpahbet
                    + "   position is:" + position);

            ListView listview = (ListView) findViewById(R.id.listView_main);
            listview.setSelection(position);
        }

        /**
         * This populates the HashMap which contains the mapping between the
         * alphabets and their relative position index.
         */
        private void populateHashMap() {
            alphabetToIndex = new HashMap<Character, Integer>();
            String base_list[] = getResources().getStringArray(R.array.base_array);
            int base_list_length = base_list.length;

            for (int i = 0; i < base_list_length; i++) {
                char firstCharacter = base_list[i].charAt(0);
                boolean presentOrNot = alphabetToIndex.containsKey(firstCharacter);
                if (!presentOrNot) {
                    alphabetToIndex.put(firstCharacter, i);
                    // Log.d(TAG,"Character="+firstCharacter+"  position="+i);
                }
            }
            number_of_alphabets = alphabetToIndex.size(); // Number of enteries in
            // the map is equal to
            // number of letters
            // that would
            // necessarily display
            // on the right.

            /*
             * Now I am making an entry of those alphabets which are not there in
             * the Map
             */
            String alphabets[] = getResources().getStringArray(
                    R.array.alphabtes_array);
            int index = -1;

            for (String alpha1 : alphabets) {
                char alpha = alpha1.charAt(0);
                index++;

                if (alphabetToIndex.containsKey(alpha))
                    continue;

                /*
                 * Start searching the next character position. Example, here alpha
                 * is E. Since there is no entry for E, we need to find the position
                 * of next Character, F.
                 */
                for (int i = index + 1; i < 26; i++) { // start from next character
                    // to last character
                    char searchAlphabet = alphabets[i].charAt(0);

                    /*
                     * If we find the position of F character, then on click event
                     * on E should take the user to F
                     */
                    if (alphabetToIndex.containsKey(searchAlphabet)) {
                        alphabetToIndex.put(alpha,
                                alphabetToIndex.get(searchAlphabet));
                        break;
                    } else if (i == 25) /*
                     * If there are no entries after E, then on
                     * click event on E should take the user to
                     * end of the list
                     */
                        alphabetToIndex.put(alpha, base_list_length - 1);
                    else
                        continue;

                }//
            }//
        }
        public void getAllMember() {

            new AsyncTask<Void, Void, String>() {
                ProgressDialog mProgressDialog;
                CustomListView mainlistview = (CustomListView) findViewById(R.id.listView_main);
                public String firstname;

                protected void onPostExecute(String result) {
                    mProgressDialog.dismiss();
                    memberlist = new ArrayList<String>();
                    first = new ArrayList<String>();

                    try {
                        JSONObject jsob = new JSONObject(result.toString());
                        if (jsob.getString("msg").equalsIgnoreCase("Success")) {
                            JSONArray datajson = jsob.getJSONArray("data");
                            for (int i = 0; i < datajson.length(); i++) {

                                JSONObject c = datajson.getJSONObject(i);
                                String id = c.getString("iMember_id");
                                firstname = c.getString("vUsername");
                                Log.d("firstname val", firstname);

                                memberlist.add(firstname);

                            }
                            mainadapter = new ArrayAdapter<String>(
                                    getBaseContext(),
                                    R.layout.mainlistview_row/*
                                                             * android.R.layout.
                                                             * simple_list_item_1
                                                             */, memberlist);
                            mainlistview.setAdapter(mainadapter);

                        } else {
                            System.out.println("not a valid user");
                        }

                    } catch (Exception e) {
                        Log.e("login problem", "" + e);

                    }

                }

                private void startActivity(Intent i) {
                    // TODO Auto-generated method stub

                }

                @Override
                protected String doInBackground(Void... arg0) {
                    // Creating service handler class instance
                    try {
                        HttpPost httppost1 = null;
                        HttpClient httpclient1 = new DefaultHttpClient();

                        httppost1 = new HttpPost(JsonKey.MAIN_URL);

                        // Add your data
                        List<NameValuePair> nameValuePairs1 = new ArrayList<NameValuePair>(
                                1);
                        nameValuePairs1.add(new BasicNameValuePair("action",
                                "GetAllMembers"));
                        httppost1.setEntity(new UrlEncodedFormEntity(
                                nameValuePairs1));
                        // Execute HTTP Post Request
                        HttpResponse response1 = httpclient1.execute(httppost1);
                        BufferedReader in1 = new BufferedReader(
                                new InputStreamReader(response1.getEntity()
                                        .getContent()));
                        StringBuffer sb1 = new StringBuffer("");
                        String line1 = "";
                        while ((line1 = in1.readLine()) != null) {
                            sb1.append(line1);
                        }
                        in1.close();
                        Log.e(" Get All magazine original data", sb1.toString());
                        return sb1.toString();
                    } catch (Exception e) {
                        Log.e("Get All magazine response problem", "" + e);
                        return " ";
                    }
                }

                @Override
                protected void onPreExecute() {
                    // TODO Auto-generated method stub
                    super.onPreExecute();
                    mProgressDialog = new ProgressDialog(IndexBar.this);
                    mProgressDialog.setTitle("");
                    mProgressDialog.setCanceledOnTouchOutside(false);
                    mProgressDialog.setMessage("Please Wait...");
                    mProgressDialog.show();

                }
            }.execute();

        }


    }


the value of memberlist in getallmember is i want to set in 
 mainadapter = new ArrayAdapter<String>(
                    getBaseContext(), R.layout.mainlistview_row/*
                     * android.R.layout.
                     * simple_list_item_1
                     */,
                     main_list_array);
公共类IndexBar扩展活动实现了McClickListener{
HashMap alphabetToIndex;
静态字符串TAG=“IndexBar”;
字母的整数=1;
静态IndexBarHandler;
私人编辑文本编辑搜索;
专用阵列适配器1;
公共阵列适配器主适配器;
公共ArrayList成员列表;
公众优先;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.indexbarlayout);
editsearch=(EditText)findViewById(R.id.textview\u头);
editsearch.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列,int start,int before,
整数计数){
//TODO自动生成的方法存根
mainadapter.getFilter().filter(s.toString());
}
@凌驾
更改前的公共无效(字符序列、整数开始、整数计数、,
整数后){
//TODO自动生成的方法存根
}
@凌驾
公共无效后文本已更改(可编辑){
//TODO自动生成的方法存根
}
});
获取屏幕高度(此);
getScreenWidth(这个);
handler=新的IndexBarHandler(此);
}
受保护的void onResume(){
super.onResume();
/*填充基本listview*/
CustomListView mainlistview=(CustomListView)findViewById(R.id.listView\u main);
字符串main_list_array[]=getResources().getStringArray(
R.array.base_数组);
if(主列表数组==null){
d(标记,“主listview的数组为空”);
回来
}

mainadapter=新阵列适配器( getBaseContext(),R.layout.mainlistview\u行/* *android.R.布局。 *简单列表项目1 */, 主列表(数组); mainlistview.setAdapter(mainadapter); populateHashMap(); } 公共int-convertDipToPx(int-dp,Context-Context){//10dp=15px Resources r=context.getResources(); 浮动px=类型值。应用尺寸, r、 getDisplayMetrics()); 返回(int)px; } 公共整数转换pxtodip(整数像素){//15px=23dp 浮动比例=getResources().getDisplayMetrics().density; int-dips=(int)((像素/刻度)+0.5f); 回报率下降; } /** *确定屏幕的宽度(以像素为单位) * *@返回宽度 */ public int getScreenWidth(活动){ Display Display=activity.getWindowManager().getDefaultDisplay(); int width=display.getWidth(); Log.d(标签,“屏幕像素宽度=”+宽度); 返回宽度; } /** *确定屏幕的高度(以像素为单位) * *@返回高度 */ 公共int getScreenHeight(活动){ Display Display=activity.getWindowManager().getDefaultDisplay(); int height=display.getHeight(); Log.d(标签,“屏幕像素高度=”+高度); 返回高度; } 公共浮点像素STOSP(上下文,浮点像素){ float-scaledDensity=context.getResources().getDisplayMetrics().scaledDensity; Log.d(标记“GetTextSize in pixels=“+px+”in Sp=” +(px/标度密度); 返回px/标度密度; } public void onItemClick(AdapterView arg0、View视图、int arg2、long arg3){ if(!(文本视图的视图实例| |视图==null)) 回来 TextView行视图=(TextView)视图; CharSequence alpahbet=rowview.getText(); if(alpahbet==null | | alpahbet.equals(“”) 回来 所选字符串_alpahbet=alpahbet.toString().trim(); 整数位置=alphabetToIndex.get(选定的字母表字符(0)); Log.d(标记,“选定字母表为:”+选定字母表 +“位置为:”+位置); ListView ListView=(ListView)findViewById(R.id.ListView\u main); listview.setSelection(位置); } /** *这将填充HashMap,其中包含 *字母表及其相对位置索引。 */ 私有void populateHashMap(){ alphabetToIndex=新HashMap(); 字符串base_list[]=getResources().getStringArray(R.array.base_数组); int base_list_length=base_list.length; 对于(int i=0;i