package com.example.fragceshi;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView.FindListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class Frag01 extends Fragment {
//private List<String> list=null;
private ListView lv=null;
private ListView lv2=null;
private View lview=null;
List<HashMap<String, String>> list=new ArrayList<HashMap<String, String>>();
private SimpleAdapter simpleAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
System.out.println("-------------------------onCreateView---------------");
return inflater.inflate(R.layout.activity_frag01, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
System.out.println("------onActivityCreated----------->");
super.onActivityCreated(savedInstanceState);
lv=(ListView)this.getView().findViewById(R.id.listView1);
lv2=(ListView)this.getActivity().findViewById(R.id.listView1);
System.out.println("------onActivityCreated----------->"+lv);
System.out.println("------onActivityCreated----------->"+lv2);
Thread thread = new Thread(myrunnable);
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*HashMap<String, String> map = new HashMap<String, String>();
map.put("dir_name"," 12121");
list.add(map);
System.out.println("-------simpleAdapter--start----------->");
simpleAdapter=new SimpleAdapter(getActivity(),list,R.layout.dir_item,new String[]{"dir_name"},new int[]{R.id.dir_name});
System.out.println("---------0.0------------------->"+simpleAdapter);
lv.setAdapter(simpleAdapter);
System.out.println("-------runnable--end----------->");
System.out.println(list);
System.out.println("-------runnable--end----------->");*/
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("onCreate------------------------>");
}
Runnable myrunnable=new Runnable(){
public void run(){
System.out.println("-------runnable--start----------->");
HashMap<String, String> map = new HashMap<String, String>();
map.put("dir_name"," 12121");
list.add(map);
System.out.println("-------simpleAdapter--start----------->");
simpleAdapter=new SimpleAdapter(getActivity(),list,R.layout.dir_item,new String[]{"dir_name"},new int[]{R.id.dir_name});
System.out.println("---------0.0------------------->"+simpleAdapter);
lv.setAdapter(simpleAdapter);
System.out.println("-------runnable--end----------->");
System.out.println(list);
System.out.println("-------runnable--end----------->");
}
};
}
上面是一个fragment,我在onactivitycreate方法中加入了thread.join();,让整个线程读完 再运行主线程,不然就会出现nullpoint的问题,我这个新手考虑了一天才想到一般主线程运行较快,子线程还没完事adapter没完事 fragment打开出错,app会强行退出。
如果我说的哪里不对请高手赐教!谢谢,我还没搞明白getview()和getactivity的区别,比如View view=(ListView)getView.findViewById(R.id.content_name);
View view=(ListView)getactivity.findViewById(R.id.content_name);
求大神赐教