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 に答える