BaseAdapter
ビューホルダーパターンでを使用しています。
そして、設定から特定のアイテムを非表示にしたいListview
:
convertView.setVisibility(View.GONE);
何もしません。
BaseAdapter
ビューホルダーパターンでを使用しています。
そして、設定から特定のアイテムを非表示にしたいListview
:
convertView.setVisibility(View.GONE);
何もしません。
そのアイテムをアダプタのリストから削除し、アダプタをリロードします。そのアイテムを再度表示する必要がある場合は、別のリストの使用を検討してください。
この回答は、リストを操作するために必要なことを行い、並べ替え、アイテムの削除に適応させることができます
編集
元に戻すを実装するには、元の値を保持するリスト、削除されたアイテムのインデックスを保持するスタック、および元の list-removed_indices から生成され、アダプターで使用される別のリストが必要になる場合があります。
ここに例があります:
ListActivity.this.setListAdapter(new SimpleAdapter(MainActivity.this, contactsList,
R.layout.list_item,
new String[] { TAG_CONTACT_NAME, TAG_STATUS}, new int[] {
R.id.name, R.id.status}){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
TextView statTview = (TextView)v.findViewById(R.id.status);
String stat = statTview .getText().toString();
if (stat.equals("0")){
v.findViewById(R.id.status).setVisibility(View.GONE);
}
return v;
}
}
);
代わりにこれを試してください:
listitem.setVisibility(View.INVISIBLE);
また
listitem.setVisibility(View.GONE);
非表示の位置を別の ArrayList に保存し、次のようにそのアイテムを非表示にすることができます。
public class SampleAdapter extends BaseAdapter {
Activity activity;
ArrayList<String> listItems;
ArrayList<Integer> hiddenPositions = new ArrayList<>();
public SampleAdapter(Activity activity, ArrayList<String> listItems) {
this.activity = activtity;
this.listItems = listItems;
}
...
@Override
public View getView(int position, View convertView, ViewGroup arg2) {
// The following small snippet of code ensures
// that we skip data from all the hidden positions
// and use the updated position to fetch the
// correct data from the listItems ArrayList.
for(Integer hiddenIndex : hiddenPositions) {
if(hiddenIndex <= position) {
position = position + 1;
}
}
String testString = listItems.get(position);
...
}
@Override
public int getCount() {
return listItems.size() - hiddenPositions.size();
}
}
hiddenPositions
リストに表示できるようにするには、 ArrayListから位置を削除して、notifyDataSetChanged();
ここでよりよく説明しました:http://vshivam.wordpress.com/2015/01/07/hiding-a-list-item-from-an-android-listview-without-removing-it-from-the-data-source /