在程序中有两个tab。每个tab都有它各自的fragment。在其中的一个tab上我需要放置一个列表视图,目的是从存储数组中接收数据,然后再作为列表显示。
public class Frag3 extends Fragment{
ListView lv1;
ProgressDialog ShowProgress;
public ArrayList<Post> PostList = new ArrayList<Post>();
TextView tv1;
Button button1;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
View view = inflater.inflate(R.layout.tab3, container, false);
//View tv = view.findViewById(R.id.textView1);
View listView = view.findViewById(R.id.listView1);
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2" };
ArrayAdapter<String> files = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1,
values);
lv1.setAdapter(files);
return view;
}
}
我根据不同的web参考文献中试过了各种方法,但是都不对。在这段代码后还要添加什么呢?大家能给我引荐一个正确的方法吗?
最大的问题是变量名不匹配。你要调用lv1,作为一个类成员,并且设置一个list适配器。但是你使用
listView来查找视图。我把改后的代码帖出来,希望给你帮助。
lv1 = (ListView) view.findViewById(R.id.listView1);
看文档:
http://developer.android.com/reference/android/app/Fragment.html
而且compat库里面的apidemo里面也有sample.
如果你用的是sdk24,那么使用eclipse添加新activity的wizard里面就有master/detail的代码生成器。
在你的代码中使用:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tab3, container, false);
listView = (ListView) view.findViewById(R.id.ListView1);
listView.setAdapter(files);