我想将数组作为listview的子项显示在字符串数组中。
我怎么能这样做?
答案 0 :(得分:0)
这是你想要实现的目标吗?
这是我使用片段的ap代码的一部分。一个片段是一个列表片段。
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class Category List extends ListFragment {
final static String[] CATEGORIES = {"String1","String2",
"String3","String4"};
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_activated_1,
CATEGORIES));
希望它有所帮助。
答案 1 :(得分:0)
从Android开发网站下载api演示或打开SDK Manager,确保您已为当前SDK下载了Samples
。
然后导航到samples文件夹并查看expandable lists
。那里有一些完整的例子。
在我的WinXP comp上,文件位于:
C:\Program Files\Android\android-sdk\samples\android-16\ApiDemos\src\com\example\android\apis\view
然后查找expandable lists.jar
个文件
答案 2 :(得分:0)
您需要创建一个Adapter类。这是你的解决方案: 首先在MainActivity类中创建一个私有类,如下所示:
private class Adapter extends BaseAdapter
{
ArrayList<String> list;
public Adapter(ArrayList<String> list)
{
this.list=list;
}
@Override
public int getCount()
{
return list.size();
}
@Override
public String getItem(int index)
{
return list.get(index);
}
@Override
public long getItemId(int arg0)
{
return 0;
}
@Override
public View getView(int index, View view, ViewGroup arg2)
{
TextView tv_text = new TextView(MainActivity.this);
tv_text.setText(list.get(index));
tv_text.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
@SuppressWarnings("deprecation")
AbsListView.LayoutParams params =
new AbsListView.LayoutParams(AbsListView.LayoutParams.FILL_PARENT,
AbsListView.LayoutParams.FILL_PARENT);
tv_text.setLayoutParams(params);
tv_text.setHeight(60);
tv_text.setTextSize(18);
return tv_text;
}
}
然后你需要将字符串放在ArrayList<String>
:
ArrayList<String> list = new ArrayList<String>();
for(int i=0;i<yourArray.length(); i++) list.add(yourArray[i]);
之后,您需要创建Adapter类的实例:
Adapter adapter = new Adapter(list);
然后您需要将适配器设置为ListView
:
ListView lv_list = (ListView)findViewById(R.id.listView1);
lv.setAdapter(adapter);
d