使用arraylist项目在android中列表视图的问题

时间:2011-06-22 11:31:17

标签: android listview

在我的应用中,我正在使用列表视图。我想列出的数据来自我的应用程序和xml服务器数据库的数据库。

例如,我从服务器获取了两组数据并将其存储在数组中,如下所示

firstname = {arun, Arun, Rajesh} 
lastname  = {kumar, sundar, kannan}

现在我再次从我的应用数据库中获取一些数据并将其存储在数组中,如下所示

first = {arul}
last  = {raj}

现在我已将数组列表组合在一起,如下所示

firstname.addAll(first);
lastname.addAll(last);

现在我的输出为

{arun, Arun, Rajesh, arul} 
{kumar, sundar, kannan, raj}

现在我想列出这些项目,如下图所示 enter image description here

怎么做,请帮帮我......

4 个答案:

答案 0 :(得分:2)

如果你最终将你的所有名字和姓氏都放在两个独立的数组中,那么在ListView上显示它就很简单了

首先创建一个具有listview元素的布局,让我们将main.xml命名为

然后创建另一个布局,在水平布局方向上有两个TextView让我们命名为mainitem.xml

所以现在你创建一个新的活动,然后调用setContentView(R.layout.main)

然后检索列表视图

现在按照代码

创建一个适配器

此代码位于onCreate(Bundle b)方法

ListView lv= (ListView)findViewById(R.id.listview1);

        // create the grid item mapping
        String[] from = new String[] {"col_1","col_2"};
        int[] to = new int[] { R.id.firstname, R.id.secondname};

        // prepare the list of all records
        List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
        for(int i = 0; i <firstname.length && lastname.length; i++)
        {
            HashMap<String, String> map = new HashMap<String, String>();
            map.put("col_1",firstname[i]);
            map.put("col_2",lastname[i]);
            fillMaps.add(map);
        }

        // fill in the grid_item layout
        SimpleAdapter adapter = new SimpleAdapter(this, fillMaps, R.layout.mainitem, from, to);
        lv.setAdapter(adapter);

创建具有两个TextView的mainitem.xml文件,其id为1)R.id.firstname,2)R.id.lastname在布局水平方向

答案 1 :(得分:0)

根据您在问题中附加的快照,您需要为其定义自定义列表视图适配器。

要定义具有2列输出的自定义行,您需要定义包含2个文本视图的xml布局文件。不要混淆,just go through this example。在此示例中,您需要修改行布局文件。制作一个行文件,这样两个文本视图将并排显示。

答案 2 :(得分:0)

创建一个存储数据的bean

实施例

public class NameDetails {
    String firstName = null;
    String middleName = null;
NameDetails(String firstName, String middleName){
    this.firstName = firstName;
    this.middleName=middleName;
}
String getFirstName(){
    return firstName;
}
String getMiddleName(){
    return middleName;
}
}

使用

向该bean添加数据
NameDetails name1 = new NameDetails("arun","kumar");
..
...

创建Bean对象数组。将此数组用于listview

{name1 , name2, name3, name4} 

答案 3 :(得分:-1)

您在寻找notifyDataSetChanged()吗?