ListView将不再显示

时间:2010-07-03 18:08:38

标签: android list adapter

我为我的应用程序使用以下main.xml。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/toplinear">
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:id="@+id/linear">
        <Button  
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="Previous"
            android:id="@+id/previous"
            android:layout_weight="1"
            />
        <Button  
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="Next"
            android:id="@+id/next"
            android:layout_toRightOf="@id/previous"
            android:layout_weight="1"
            />
    </LinearLayout>
    <ListView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:id="@+id/android:list"
        android:layout_weight="10"
        />

</LinearLayout>

我希望在顶部,上一页和下一页有两个按钮,我的listview下面有自定义适配器。几天前我只有我的ListView显示,翻过按钮。现在我似乎被困在另一边,我的列表视图在我的按钮没有显示的地方。

我的活动扩展到ListActivity并使用此代码用customadapter填充它。

ListView lv = getListView();
lv.setAdapter(new MyCustomAdapter(this, R.layout.custom_list, nameResults));

    public class MyCustomAdapter extends ArrayAdapter<String> {
        private String[] nameResults;
        private Context context;

        public MyCustomAdapter(Context context, int textViewResourceId,
                String[] names) {
            super(context, textViewResourceId, names);
            this.context = context;
            nameResults = names;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View row = convertView;
            if (row == null) {
                LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                row = inflater.inflate(R.layout.custom_list, parent, false);
            }

            TextView label = (TextView) row.findViewById(R.id.Name);
            label.setText(nameResults[position]);
            TextView descr = (TextView) row.findViewById(R.id.Description);
            descr.setText(linkedResults.get(nameResults[position]));

            return row;
        }
    }

我尝试使用“lv.addHeaderView(previous);”但这只给了我关于LayoutParams的模糊ClassCastExceptions。

我认为我的问题目前在我的main.xml中,因为Eclipse中的Layout选项卡也不会显示ListView。它知道它在大纲选项卡中显示的位置,但是当我选择它时,视觉表示不会给它一个红色轮廓。

为了完整性,我的custom_list(又名行)布局xml:

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#ffffff"
>
  <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/Name"
    android:textColor="#000000"
    android:textStyle="bold"
  />
  <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/Description"
    android:textColor="#000000"
  />

</LinearLayout>

1 个答案:

答案 0 :(得分:2)

我修改了你的main.xml - 添加了方向并取消了listview的layout_weight - 希望这可以解决这个问题。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/toplinear">
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      android:id="@+id/linear">
        <Button  
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="Previous"
            android:id="@+id/previous"
            android:layout_weight="1"
            />
        <Button  
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="Next"
            android:id="@+id/next"
            android:layout_toRightOf="@id/previous"
            android:layout_weight="1"
            />
    </LinearLayout>
    <ListView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:id="@+id/android:list"
        />

</LinearLayout>