0

リスト ビューを更新しようとしています。スピナーでアイテムを選択すると、コードは機能しますが、出力が生成されません。バグがわかりません。スピナーのアイテムをクリックするたびに、別のリストを表示したいです。

Spinner spinner;
String path[] = {"Laptops","DesktopPC","Tablets","Add-Ons","Gaming"};
String Laptops[] = {"Dell","Hp","Apple"};
ListView lstView;


lstView = (ListView) findViewById(R.id.listView1);

ArrayAdapter<String> adapter = new ArrayAdapter<String> (Category.this, android.R.layout.simple_spinner_item, path );
spinner = (Spinner) findViewById(R.id.spinner1);
spinner.setAdapter(adapter);
spinner.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1,
            int arg2, long arg3) {
        // TODO Auto-generated method stub
        ArrayAdapter<String> lstAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, Laptops);
        lstView.setAdapter(lstAdapter);
        //lstView.refreshDrawableState();

    }
});
4

4 に答える 4

0

新しいアダプターを設定する代わりに、データ セットが変更されたことを通知することを使用します。

// Inside Event callback
 path = Laptops; // This is how you change data set
 lstView.notifyDataSetChanged();
于 2013-11-07T10:16:38.717 に答える
-1

以下のように、notifyDataSetChanged() をアダプターに追加します。

spinner.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                // TODO Auto-generated method stub
                ArrayAdapter<String> lstAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, Laptops);
                lstView.setAdapter(lstAdapter);
                lstAdapter.notifyDataSetChanged();
                //lstView.refreshDrawableState();

            }
        });
于 2013-11-07T10:13:26.090 に答える