2017-05-09 5 views
-2

私は、カートに追加された値を格納、検索、および削除するためにSQLITEを使用しています。また、カスタムリストビューの各行に削除ボタンを追加しました。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; 
} 
+0

チェックorderid.sizeボタンのクリックで()> 0 – vinod

+0

をそれはちょうどArrayList.sizeをチェックする非常に簡単です(); –

+0

@vinodちょっとsirはsetemptyviewで私の問題を解決しました:Dあなたの助けをありがとう! –

答えて

0

空ではありませんねえ、私は私の問題を解決する人は、私はちょうど追加EmptyView。リストビューが空になったときに、自動的にこの

ListCartAdapter adapter = new ListCartAdapter(cart.this, orderid, orderName, orderSize, orderQuantity); 
    listView.setAdapter(adapter); 
listView.setEmptyView(findViewById(R.id.emptyView)); 

ようemptyviewを示し助けたすべての人にありがとう:D

3

(cartlist.size()<0)はその後、あなたのリストが空の場合adapter.getCount() == 0

+0

こんにちは、大変助けてくれてありがとう、私はすでに私の問題を解決しました。私はあなたにアップアップをするはずだったが、人々は私の質問を私がアップvoteできないポイントまで下降させた。助けてくれてありがとう! –

2

がちょうどチェックした場合にだけチェック!あなたはこれを組み込むには同じ

listView.getAdapter().getItemCount(); 

を行うには、次の使用することができます

+0

こんにちは先生、本当に助けてくれてありがとう、私はすでに私の問題を解決しました。私はあなたにアップアップをするはずだったが、人々は私の質問を私がアップvoteできないポイントまで下降させた。助けてくれてありがとう! –

+0

Ok Buddy uは受け入れることができます。 @GionneLapuz –

2

、アイテムを削除するためのリスナーを作成し、あなたの活動に実装する必要があります。次に、上書きメソッドで上記のコードを使用することができます。それはを返す場合、リストが空であるadapter.isEmpty()場合、それはを返す場合

+0

こんにちは先生、私はすでに私の問題を解決して助けてくれてありがとう。私はあなたにアップアップをするはずだったが、人々は私の質問を私がアップvoteできないポイントまで下降させた。助けてくれてありがとう! –

1

チェックが、それは

+0

こんにちは、先生、本当に助けてくれてありがとう、私はすでに私の問題を解決しました。私はあなたにアップアップをするはずだったが、人々は私の質問を私がアップvoteできないポイントまで下降させた。助けてくれてありがとう! –

関連する問題