检查ListView是否为空
我正在使用SQLITE来存储,检索和删除购物车中添加的值。并为自定义列表视图中的每一行添加一个删除按钮。检查ListView是否为空
所以当用户点击特定行上的删除按钮时,它也会删除表中的数据。
我的问题是,当用户删除购物车中的所有东西时,我将如何检查listview是否为空?
有人可以指点我该做什么或使用什么?提前致谢! :d
这是我的车类:
//CART LISTVIEW
private ArrayList<String> orderid;
private ArrayList<String> orderName;
private ArrayList<String> orderSize;
private ArrayList<String> orderQuantity;
private cartDatabaseHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cart);
db = new cartDatabaseHelper(this);
//CART LISTVIEW
orderid = new ArrayList<>();
orderName = new ArrayList<>();
orderSize = new ArrayList<>();
orderQuantity = new ArrayList<>();
TextView textEmpty = (TextView) findViewById(R.id.textEmpty);
Button btnCheckout = (Button) findViewById(R.id.btnCheckout);
ListView listView = (ListView) findViewById(R.id.listView);
//ListView listView1 = (ListView) findViewById(R.id.emptyView);
final ListCartAdapter adapter = new ListCartAdapter(cart.this, orderid, orderName, orderSize, orderQuantity);
listView.setAdapter(adapter);
Cursor data = db.getListContents();
data.moveToFirst();
if(data.getCount() == 0){
textEmpty.setVisibility(View.VISIBLE);
btnCheckout.setVisibility(View.GONE);
}
else
{
textEmpty.setVisibility(View.GONE);
btnCheckout.setVisibility(View.VISIBLE);
data.moveToFirst();
do{
orderid.add(data.getString(0));
orderName.add(data.getString(1));
orderSize.add(data.getString(2));
orderQuantity.add(data.getString(3));
} while (data.moveToNext());
}
data.close();
}
@Override
public void onBackPressed() {
finish();
}
,这是我的适配器类别:
public class ListCartAdapter extends BaseAdapter {
private Context context;
private ArrayList<String> orderid;
private ArrayList<String> orderName;
private ArrayList<String> orderSize;
private ArrayList<String> orderQuantity;
public ListCartAdapter(Context context, ArrayList<String> orderid, ArrayList<String> orderName, ArrayList<String> orderSize, ArrayList<String> orderQuantity){
this.context = context;
this.orderid = orderid;
this.orderName = orderName;
this.orderSize = orderSize;
this.orderQuantity = orderQuantity;
}
@Override
public int getCount() {
return orderName.size();
}
@Override
public Object getItem(int position) {
return orderName.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final View listView;
final LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
listView = inflater.inflate(R.layout.cart_list_item, null);
TextView number = (TextView) listView.findViewById(R.id.textID);
TextView name = (TextView) listView.findViewById(R.id.textOrderName);
TextView size = (TextView) listView.findViewById(R.id.textOrderSize);
TextView quantity = (TextView) listView.findViewById(R.id.textOrderQuantity);
ImageButton btnRemove = (ImageButton) listView.findViewById(R.id.btnRemove);
number.setText(orderid.get(position));
name.setText(orderName.get(position));
size.setText(orderSize.get(position));
quantity.setText(orderQuantity.get(position));
final cartDatabaseHelper db = new cartDatabaseHelper(context);
//BUTTON TO REMOVE ROW
btnRemove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
new AlertDialog.Builder(context)
.setTitle("REMOVE" + " " + orderName.get(position) + " " + "FROM CART?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
db.removeSingleContact(orderid.get(position));
orderName.remove(position);
orderSize.remove(position);
orderQuantity.remove(position);
notifyDataSetChanged();
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.show();
}
});
return listView;
}
嗨我解决我的问题,我只加EmptyView。所以,当列表视图变空,它会自动显示这样
ListCartAdapter adapter = new ListCartAdapter(cart.this, orderid, orderName, orderSize, orderQuantity);
listView.setAdapter(adapter);
listView.setEmptyView(findViewById(R.id.emptyView));
感谢大家,帮助一个emptyview:d
只是检查是否adapter.getCount() == 0
嘿,先生,非常感谢你的帮助,我已经解决了我的问题。我本来应该高举你的,但人们低估了我的问题,直到我无法赞成的程度。再次感谢您的帮助先生! –
只是检查是否(cartlist.size()<0)
那么你的列表是空的。!
嘿,先生,非常感谢你的帮助,我已经解决了我的问题。我本来应该高举你的,但人们低估了我的问题,直到我无法赞成的程度。再次感谢您的帮助先生! –
好吧好友,你可以接受这个答案,如果它的用处。 @GionneLapuz –
您可以使用下面做同样的
listView.getAdapter().getItemCount();
要合并这一点,你需要使听者删除的项目,并在您的活动实现。然后在该覆盖方法中,您可以使用上面的代码。
嘿,先生,非常感谢你的帮助,我已经解决了我的问题。我本来应该高举你的,但人们低估了我的问题,直到我无法赞成的程度。再次感谢您的帮助先生! –
如果检查adapter.isEmpty()如果返回真列表是空的,如果它返回假那么它是不是空
嘿,先生,非常感谢你的帮助,我已经解决了我的问题。我本来应该高举你的,但人们低估了我的问题,直到我无法赞成的程度。再次感谢您的帮助先生! –
检查orderid.size()> 0按钮点击 – vinod
这很简单,只需要检查ArrayList.size (); –
@vinod嘿先生用setemptyview解决了我的问题:D感谢您的帮助! –