Android 从异步任务填充arraylist

Android 从异步任务填充arraylist,android,arrays,preferenceactivity,preference,Android,Arrays,Preferenceactivity,Preference,我在PreferenceActivity中有以下ListPreference,我希望用从web服务检索的电话号码填充它。我如何才能成功地做到这一点 <PreferenceCategory android:title="@string/category_shownumber"> <ListPreference android:title="@string/shownumber_header"

我在PreferenceActivity中有以下ListPreference,我希望用从web服务检索的电话号码填充它。我如何才能成功地做到这一点

    <PreferenceCategory
        android:title="@string/category_shownumber">

            <ListPreference
                    android:title="@string/shownumber_header"
                    android:summary="@string/shownumber_summary"
                    android:key="shownumber_list"
                    android:defaultValue="@string/shownumber_default"
                    android:entries="@array/listArray"
                    android:entryValues="@array/listValues" />

</PreferenceCategory>

我希望我的android:entries来自这个类中doInBackground返回的字符串数组:

    private class PullNumbersTask extends AsyncTask<Void, Void, String[]>
{
    private Context ctx; 

    public PullNumbersTask(Context context)
    {
        super();
        this.ctx=context;
    }
    private ProgressDialog Dialog = new ProgressDialog(getParent());

    protected void onPreExecute() 
    {
        Dialog.setMessage("Fetching numbers..");
        Dialog.show();
    }

    @Override
    protected String[] doInBackground(Void... arg0) {
        return (userControl.GetNumbers());
    }


     protected void onPostExecute(String[] result) 
     {
              // Do stuff with my array
     }
私有类PullNumberTask扩展了AsyncTask
{
私有上下文ctx;
公共PullNumberTask(上下文)
{
超级();
这个.ctx=上下文;
}
private ProgressDialog=新建ProgressDialog(getParent());
受保护的void onPreExecute()
{
setMessage(“获取数字…”);
Dialog.show();
}
@凌驾
受保护字符串[]doInBackground(无效…arg0){
返回(userControl.GetNumbers());
}
受保护的void onPostExecute(字符串[]结果)
{
//用我的数组做一些事情
}

有什么建议吗?

在onPostExecute中调用它怎么样

listPref.setEntries(result);
(显然,您需要对ListPreference对象的引用)

编辑 要实际获取ListPreference对象,您需要

ListPreference listPref = (ListPreference) findPreference("shownumber_list");

addPreferencesFromResource(R.xml.preferences);
的调用必须在此之前完成(很可能是在onCreate()中)

真的那么简单吗?如果是的话,太棒了!如果可行,我会给你回复。你还需要设置entryvalues,但基本上就是这样。entryvalues和entry之间的区别是什么?entryvalues是显示的内容,因此可以本地化,entryvalues是支持文本的技术值。这可能太难了请问,我是否有可能让您帮助我获取此特定ListPreference对象的引用?