是否可以创建ListView和适配器,在没有XML的情况下以编程方式向其添加项目?如果是这样,怎么样?
答案 0 :(得分:2)
首先,您需要初始化ListView,然后将其添加到活动的布局中。您可以在此处阅读:How to create a RelativeLayout programmatically with two buttons one on top of the other?
您将创建一个Layout,然后创建一个ListView并将其添加到该布局。
接下来,您需要创建自定义适配器。你可以在这里阅读更多相关信息: http://developer.android.com/reference/android/widget/ListAdapter.html
例如,您可以使用ArrayAdapter。 http://developer.android.com/reference/android/widget/ArrayAdapter.html
ArrayAdapter有一个方法
public View getView (int pos, View convertView, ViewGroup parent)
此方法返回一个视图,以便在列表中的 pos 位置显示。在此方法中,您将首先看到是否已有此位置的视图(通过检查convertView)。如果你不这样做,你会生成一个你想要的新视图。您可以在代码中执行此操作,或者更好的是,您可以使用XML文件并为视图充气。
在获得适配器设置后,可以在ListView上调用setAdapter。
例如,它可能看起来像这样:
@Override
public void onCreate(Bundle savedInstanceState){
LinearLayout ll = new LinearLayout(this);
ListView lv = new ListView(this);
YourAdapter adapter = new YourAdapter(<parameters here>);
lv.setAdapter(adapter);
ll.addView(lv, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
setContentView(ll);
}
答案 1 :(得分:0)
假设您了解Fragments和ArrayAdapter,最简单的方法是使用setListAdapter(ArrayAdaper /某些自定义适配器对象)方便方法扩展ListFragment并添加适配器。如果您没有使用便捷方法,则应使用ListFragment.setListAdapter(...)Not ListView.setListAdapter(...)。