0

当数据库中没有任何内容时,我试图在 ListView 中打印类似“NO ALARM ADDED”的消息。 I have set EmptyView but still it is showing me a single row with default values of row layout i have defined(issue) 未显示空视图。

我的 XML 布局:-

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <ListView
        android:id="@+id/listView_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:divider="#66F5F5F5"
        android:dividerHeight="1dp"
        android:focusable="true"
        android:paddingTop="5dp" >
    </ListView>

    <TextView
        android:id="@+id/empty"
        style="@android:style/TextAppearance.Large"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:text="NO ALARM ADDED" >
    </TextView>

</RelativeLayout>

我的自定义适配器 GetView 方法在这里:-

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View vi = convertView;
    ViewHolder vh;

    if (convertView == null) {
        vi = inflater.inflate(R.layout.row_layout, null);

        vh = new ViewHolder();
        vh.time = (TextView) vi.findViewById(R.id.time);
        vh.isEnabled = (ImageView) vi.findViewById(R.id.switch_img_rowLayout);

        vh.days = new TextView[7];
        for (int i = 0; i < vh.id.length; i++) {
            vh.days[i] = new TextView(context);
            vh.days[i] = (TextView) vi.findViewById(vh.id[i]);
        }

        vi.setTag(vh);
    } else
        vh = (ViewHolder) vi.getTag();

    Typeface titleFont = Typeface.createFromAsset(main.getAssets(), "digital1.ttf");

    vh.time.setTypeface(titleFont);
    vh.time.setPaintFlags(vh.time.getPaintFlags() | Paint.SUBPIXEL_TEXT_FLAG);
    vh.isEnabled.setOnClickListener(this);

    if (list.size() > 0) {
        model = null;
        model = (ListModel) list.get(position);

        vh.time.setText(model.getTime());
        // vh.note.setText(model.getNote());

        String day[] = model.getRepetition().split(",");

        for (int i = 0; i < day.length; i++) {
            for (int j = 0; j < 7; j++) {
                if (day[i].equalsIgnoreCase(vh.days[j].getText().toString())) {
                    vh.days[j].setTextColor(Color.GREEN);
                }
            }
        }
    } else {

    }

    return vi;
}

May Main.java 代码在这里:-

listView.setAdapter(swipe_adapter_undoable);
listView.setOnItemClickListener(new onItemClickListnerForLitView());

listView.setFocusable(true);
listView.setClickable(true);
listView.setEmptyView(findViewById(R.id.empty));

swipe_adapter_undoable.notifyDataSetChanged();

任何人都可以帮助我的消息不显示但默认布局行显示?

4

1 回答 1

0

更改您的 getCount 方法:

@Override 
public int getCount() { 
    return list == null ? 0 : list.size();
}
于 2013-11-11T22:39:57.950 回答