1

当我从列表视图中的两个或多个字符串数组中获取值时我遇到问题我使用不同的按钮在列表视图中仅获得第一个字符串数组单击列表值来自数组第列表没有在列表中获得不同的值

//这是我使用switch case的代码

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class CategoriesList extends ListActivity {
    ListView listView;
    private String[] name1;
    private static int[] name = { R.array.NewArrivals, R.array.Sarees,
            R.array.SalwarKameez, R.array.Lahenga, R.array.Kurti,
            R.array.Jewelry, R.array.Accessories, R.array.ReadyToShip };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.itemlist);

        listView = (ListView) findViewById(android.R.id.list);
        displayList();
    }

    public void displayList() {
        // TODO Auto-generated method stub
        for (int i = 1; i <= name.length; i++) 
        {
                name1 = getResources().getStringArray(name[i]);
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, name1);
                setListAdapter(adapter);
                adapter.setNotifyOnChange(true);
        }
    }
}
4

2 回答 2

1

为什么要在下一次迭代中覆盖您在一次迭代中设置的adatper?您将所有适配器设置为同一个列表项,这意味着只有最后一个设置将具有视觉效果(所有其他设置都将被覆盖)。

也许您需要针对不同情况更改列表项的 ID?

switch由于您现在已经编写了代码,因此您不需要for像这样重写代码:

String [] name1;
for (int i = 0; i <= name.length; i++) {
    name1 = getResources().getStringArray(name[i]);
    ArrayAdapter<String> adapter =
       new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, name1);
    setListAdapter(adapter);
    adapter.setNotifyOnChange(true);
}

不过,我想这又不是你想要的。

于 2012-04-13T10:56:24.390 回答
0

函数displayList()总是最终设置列表适配器以显示来自R.array.ReadyToShip. 这不是你想要的吗?

于 2012-04-13T11:00:12.183 回答