ListView中不会显示向数据源添加项目

时间:2010-08-29 20:43:38

标签: android listview arraylist listadapter

我正在向我的数据源添加项目,并希望它出现在我的ListView中。出于某种原因,没有任何东西出现:

适配器:

private class STCompanyAdapter extends ArrayAdapter<STCompany> {

        private ArrayList<STCompany> items;

        public STCompanyAdapter(Context context, int textViewResourceId,
                ArrayList<STCompany> items) {
            super(context, textViewResourceId, items);
            this.items = items;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            if (v == null) {
                LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.addstocksrow, null);
            }
            STCompany q = items.get(position);
            if (q != null) {
                TextView symbolText = (TextView) v.findViewById(R.id.toptext);
                TextView nameText = (TextView) v.findViewById(R.id.bottomtext);

                if (nameText != null) {
                    nameText.setText(q.getSymbol());
                }
                if (symbolText != null) {
                    symbolText.setText(q.getName());
                }
            }
            return v;
        }
    }

在onCreate中添加项目:

listView = (ListView) findViewById(R.id.symbolsListView);
            this.companiesAdapter = new STCompanyAdapter(this, R.layout.addstocksrow, companies);
            listView.setAdapter(this.companiesAdapter);

    STCompany myCompany = new STCompany();
                    myCompany.setName("La La");
                    myCompany.setSymbol("BP");

                    companiesAdapter.add(myCompany);
                    companiesAdapter.notifyDataSetChanged();

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout">
<EditText android:id="@+id/addStocksEditText" android:text="Search company or stock" android:layout_width="200dp" android:layout_height="50dp"></EditText><Button android:layout_height="wrap_content" android:text="Search" android:id="@+id/searchButton" android:layout_width="fill_parent"></Button><ListView android:id="@+id/symbolsListView" android:layout_width="fill_parent" android:layout_height="fill_parent"></ListView>


</LinearLayout>

2 个答案:

答案 0 :(得分:1)

尝试companies.add(myCompany)而不是companiesAdapter.add(myCompany)。

答案 1 :(得分:0)

问题是我的布局。 listview没有出现。代码还可以。