1

リスト ビューで 2 つ以上の文字列配列から値を取得するときに問題が発生します 別のボタンをクリックしてリスト ビューで最初の文字列配列のみを取得します リスト値は配列から取得されています 番目のリストはリストで異なる値を取得していません

//これは、スイッチケースを使用した私のコードです

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

ある反復で設定したアダプターを次の反復で上書きするのはなぜですか? すべてのアダプターを同じリスト項目に設定しています。つまり、最後の設定だけが視覚効果を持つことになります (他のすべての設定は上書きされます)。

場合によっては、リスト項目の 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 に答える