listview到字符串数组

时间:2012-10-25 09:42:43

标签: java android arrays string listview

我有一个带有延迟适配器的xml解析器,我将所有数据解析为列表视图。

现在我想从listivew中获取所有数据(wiche是每行1个textview)并且放入和字符串数组 但我不知道我该怎么做。因为如果我谷歌我只得到如何使用和字符串数组填充列表的结果。

我的解析器:

TextView txt =(TextView)vi.findViewById(R.id.tv);
HashMap<String, String> song = new HashMap<String, String>();
song = data.get(position);     
txt.setText(song.get(MainActivity.KEY_TXT));

我使用(到目前为止)获取字符串数组的方法:

private String[] txt = {

}

提前感谢。

1 个答案:

答案 0 :(得分:1)

您只需在listView适配器的getView()方法中使用字符串数组。像这样: -

使strArray的大小与listView的大小相同。

String strArray[] = new String[<size of Your ListView>]; 

@Override
public View getView(int position, View convertView, ViewGroup parent) {


    TextView textView;
    if (convertView == null) {

        convertView = inflater.inflate(R.layout.listitem, parent, false);
        textView = (TextView) convertView
                .findViewById(R.id.textView);
    }
    strArray[position] = textView.getText().toString();
    return convertView;
}

现在你想将这个strArray用于其他类,然后你必须将它设为静态,或者你可以通过intent将它传递给其他类。就像这样: -

Bundle b=new Bundle();
b.putStringArray(key, new String[]{value1, value2});
Intent i=new Intent(context, Class);
i.putExtras(b);

然后在其他activity class中你应该通过输入以下代码获得这个String数组: -

Bundle b=this.getIntent().getExtras();
String[] array=b.getStringArray(key);

如果要传递String Array(即strArray)的类不是Activity,那么你应该使你的strArray像这样静态:

public static strArray[];

现在我认为你的问题将得到解决..