代码之家  ›  专栏  ›  技术社区  ›  Sheehan Alam

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

  •  1
  • Sheehan Alam  · 技术社区  · 15 年前

    我正在向数据源添加项,希望它显示在我的列表视图中。出于某种原因,什么都没有出现:

    Adapter:

    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 回复  |  直到 12 年前
        1
  •  1
  •   Megha Joshi - GoogleTV DevRel    15 年前

    尝试companies.add(mycompany)而不是companiesadapter.add(mycompany)。

        2
  •  0
  •   BenMorel Manish Pradhan    12 年前

    问题是我的布局。没有出现ListView。代码没问题。