Java 数据未在列表中填充,Android

Java 数据未在列表中填充,Android,java,android,android-listview,Java,Android,Android Listview,我正在尝试使用异步任务填充片段listview, 但listvew并没有普及。我正在日志中获取数据,日志中没有错误和异常 我遵循这个例子 以下是代码:- public class HindiFragment extends Fragment { // XML node keys static final String KEY_SONG = "song"; // parent node static final String

我正在尝试使用异步任务填充片段listview, 但listvew并没有普及。我正在日志中获取数据,日志中没有错误和异常

我遵循这个例子

以下是代码:-

    public class HindiFragment extends Fragment {
        // XML node keys
            static final String KEY_SONG = "song"; // parent node
            static final String KEY_ID = "id";
            static final String KEY_TITLE = "title";
            static final String KEY_ARTIST = "artist";
            static final String KEY_DURATION = "duration";
            static final String KEY_THUMB_URL = "thumb_url";
            static final String KEY_VIDEO_URL = "video";
            static final String KEY_UPLOAD_BY = "upload_by";
            Context abc=null;
            static int startIndex = 0;
             private WeakReference<MyAsyncTask> asyncTaskWeakRef;
            ListView list;
            static LazyAdapter adapter;
            JSONObject json;
            static int offset = 10;
            static ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();

            public static Context hindiFragment=null;
            private static int catId=0;
             static View rootView ;
        public HindiFragment(){}

        public HindiFragment(int position) {
            // TODO Auto-generated constructor stub
            catId=position;
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            //StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

            //StrictMode.setThreadPolicy(policy); 


             rootView = inflater.inflate(R.layout.main, container, false);
               // TextView tvLabel =  (TextView)rootView.findViewById(R.id.txtLabel);
               // tvLabel.setText("Hello"); try
             hindiFragment=rootView.getContext();
             try{
                 //Toast.makeText(hindiFragment,  "catid is "+catId, 
                    //     Toast.LENGTH_LONG).show();
                UserFunctions userFunction = new UserFunctions();
                json=userFunction.getAndroidVersion();
                 JSONArray android_version_array = json.getJSONArray("version");
                 TextView tv = (TextView) rootView.findViewById(R.id.android_version);
                 //getting android version
                 for (int i = 0; i < android_version_array.length(); i++) {
                        // creating new HashMap
                        HashMap<String, String> map = new HashMap<String, String>();
                         JSONObject myObj = android_version_array.getJSONObject(i);
                         if(! myObj.getString("version").equalsIgnoreCase(String.valueOf(getString(R.string.android_version)))){
                         tv.setText( Html.fromHtml(myObj.getString("text")));
                         tv.setMovementMethod(LinkMovementMethod.getInstance());
                         }else
                         {
                             tv.setVisibility(View.GONE);
                         }
                        // adding each child node to HashMap key => value
                    }

                 startNewAsyncTask(this.getActivity());

           return rootView;
             }catch(Exception e){
                 e.printStackTrace();
             }
            return rootView;

        }

        public static void loadMore(int startIndex,int page,Activity myActivity){
            try{
            UserFunctions userFunction = new UserFunctions();
            Log.e("page ",""+page);
            int status=0;
            JSONObject json;
             json = userFunction.getChannelData(String.valueOf(catId),page);
             if(json.has("video")){
             JSONArray deletedtrs_array = json.getJSONArray("video");

            for (int i = 0; i < deletedtrs_array.length(); i++) {
                // creating new HashMap
                HashMap<String, String> map = new HashMap<String, String>();
                 JSONObject myObj = deletedtrs_array.getJSONObject(i);
                // adding each child node to HashMap key => value
                map.put(KEY_ID, myObj.getString("uid"));
                map.put(KEY_TITLE, myObj.getString("uid"));
                map.put(KEY_ARTIST,myObj.getString("video"));
                map.put(KEY_DURATION, myObj.getString("duration"));
                map.put(KEY_THUMB_URL,myObj.getString("thumb_url"));
                map.put(KEY_VIDEO_URL, myObj.getString("url"));
                map.put(KEY_UPLOAD_BY,"By: "+ myObj.getString("upload_by"));

                // adding HashList to ArrayList
                //if(!songsList.contains(map))
                {
                songsList.add(map);
                status=1;
                }
            }
             }
            //if(status==1)
            {
            //]list=(ListView)rootView.findViewById(R.id.list);
            // Getting adapter by passing xml data ArrayList
          // adapter=new LazyAdapter(myActivity, songsList);     
          // list.setAdapter(adapter);
          // adapter.notifyDataSetChanged();
            }
            }catch(Exception e){

                e.printStackTrace();
            }

        }
        private void startNewAsyncTask(Activity act) {
            MyAsyncTask asyncTask = new MyAsyncTask(act);
            this.asyncTaskWeakRef = new WeakReference<MyAsyncTask >(asyncTask );
            asyncTask.execute();
        }
        private static class MyAsyncTask extends AsyncTask<Void, Void, Void> {

            private WeakReference<HindiFragment> fragmentWeakRef;
            HindiFragment uindiFragment;
            Activity myActivity;
            private MyAsyncTask (Activity activity) {
                this.fragmentWeakRef = new WeakReference<HindiFragment>(uindiFragment);
                myActivity=activity;
            }

            @Override
            protected Void doInBackground(Void... params) {
                //Toast.makeText(hindiFragment, "helllo", 
                  // Toast.LENGTH_LONG).show();
                            //TODO: your background code
                Log.e("Now in background",offset+"");
                loadMore(startIndex, offset,myActivity);
                return null;
            }

            @Override
            protected void onPostExecute(Void response) {
                super.onPostExecute(response);
                ListView  list=(ListView)rootView.findViewById(R.id.list);
                // Getting adapter by passing xml data ArrayList
                adapter=new LazyAdapter(myActivity, songsList); 
                list.setAdapter(adapter);
                adapter.notifyDataSetChanged();
                Log.e("Ended here11 ","now endeded11");

                if (this.fragmentWeakRef.get() != null) {
                                 //TODO: treat the result
                     adapter.notifyDataSetChanged();
                }
            }
        }


    }
公共类HindiFragment扩展片段{
//XML节点密钥
静态最终字符串键\u SONG=“SONG”//父节点
静态最终字符串键\u ID=“ID”;
静态最终字符串键\u TITLE=“TITLE”;
静态最终字符串键\u ARTIST=“ARTIST”;
静态最终字符串键\u DURATION=“DURATION”;
静态最终字符串键\u THUMB\u URL=“THUMB\u URL”;
静态最终字符串键\u VIDEO\u URL=“VIDEO”;
静态最终字符串键\u UPLOAD\u BY=“UPLOAD\u BY”;
上下文abc=null;
静态int startIndex=0;
私有WeakReference异步任务weakref;
列表视图列表;
静态懒散适配器;
JSONObject json;
静态整数偏移=10;
静态ArrayList songsList=新ArrayList();
公共静态上下文hindiFragment=null;
私有静态int catId=0;
静态视图rootView;
公共HindiFragment(){}
公共障碍物(内部位置){
//TODO自动生成的构造函数存根
catId=位置;
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
//StrictMode.setThreadPolicy(策略);
rootView=充气机。充气(右布局主,容器,假);
//TextView tVBLabel=(TextView)rootView.findViewById(R.id.txtLabel);
//tvblabel.setText(“你好”);试试看
hindiFragment=rootView.getContext();
试一试{
//Toast.makeText(hindiFragment,“catid是”+catid,
//Toast.LENGTH_LONG).show();
UserFunctions userFunction=新的UserFunctions();
json=userFunction.getAndroidVersion();
JSONArray android_version_array=json.getJSONArray(“version”);
TextView tv=(TextView)rootView.findviewbyd(R.id.android\u版本);
//获取android版本
for(int i=0;ivalue
}
startNewAsyncTask(this.getActivity());
返回rootView;
}捕获(例外e){
e、 printStackTrace();
}
返回rootView;
}
公共静态void loadMore(int startIndex,int page,Activity myActivity){
试一试{
UserFunctions userFunction=新的UserFunctions();
Log.e(“第页”,“第+页”);
int status=0;
JSONObject json;
json=userFunction.getChannelData(String.valueOf(catId),第页);
if(json.has(“视频”)){
JSONArray deletedtrs_array=json.getJSONArray(“视频”);
对于(int i=0;ivalue
map.put(KEY_ID,myObj.getString(“uid”);
map.put(KEY_TITLE,myObj.getString(“uid”);
map.put(KEY_ARTIST,myObj.getString(“视频”);
map.put(KEY_DURATION,myObj.getString(“DURATION”);
put(KEY_THUMB_URL,myObj.getString(“THUMB_URL”));
map.put(KEY_VIDEO_URL,myObj.getString(“URL”);
map.put(KEY_UPLOAD_BY,“BY:”+myObj.getString(“UPLOAD_BY”));
//将哈希列表添加到ArrayList
//如果(!songsList.contains(map))
{
歌曲列表。添加(地图);
状态=1;
}
}
}
//如果(状态==1)
{
//]list=(ListView)rootView.findViewById(R.id.list);
//通过传递xml数据ArrayList获取适配器
//adapter=新的LazyAdapter(myActivity,songsList);
//list.setAdapter(适配器);
//adapter.notifyDataSetChanged();
}
}捕获(例外e){
e、 printStackTrace();
}
}
私有无效startNewAsyncTask(活动法案){
MyAsyncTask asyncTask=新的MyAsyncTask(act);
this.asynctaskwakref=新的WeakReference(asyncTask);
asyncTask.execute();
}
私有静态类MyAsyncTask扩展了AsyncTask{
私人组织参考碎片组织;
后肢碎片;
活动我的活动;
私有MyAsyncTask(活动){
this.fragmentWeakRef=新的WeakReference(uindiFragment);
我的活动=活动;
}
@凌驾
受保护的Void doInBackground(Void…参数){
//Toast.makeText(hindiFragment,
protected void onPostExecute(Void response) {
   super.onPostExecute(response);
   ListView  list=(ListView)rootView.findViewById(R.id.list);
   // Getting adapter by passing xml data ArrayList
   adapter=new LazyAdapter(myActivity, songsList); 
   list.setAdapter(adapter);
   adapter.notifyDataSetChanged();
...
}