このメソッドを使用して、チェックされたリストの項目数を確認していますが、11 より古い SDK ではこのメソッドを使用できないというエラーが表示されます。
APIレベル8でこれに相当するものは何ですか
このメソッドを使用して、チェックされたリストの項目数を確認していますが、11 より古い SDK ではこのメソッドを使用できないというエラーが表示されます。
APIレベル8でこれに相当するものは何ですか
受け入れられた回答はうまくいきませんでした (常に 0 を返します)。次のコードを使用する必要がありました。
public static int getCheckedItemCount(ListView listView)
{
if (Build.VERSION.SDK_INT >= 11) return listView.getCheckedItemCount();
else
{
int count = 0;
for (int i = listView.getCount() - 1; i >= 0; i--)
if (listView.isItemChecked(i)) count++;
return count;
}
}
getCheckedItemIds().length
トリックを行うようです
私はこのコードを使用しています。これは効率的で、すべての場合に機能すると信じています。
public int getCheckedItemCount() {
ListView listView = getListView();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
return listView.getCheckedItemCount();
}
SparseBooleanArray checkedItems = listView.getCheckedItemPositions();
int count = 0;
for (int i = 0, size = checkedItems.size(); i < size; ++i) {
if (checkedItems.valueAt(i)) {
count++;
}
}
return count;
}
うまくいかないケースがありましたらお知らせください。