listviewから1つのビューをスキップする方法は?

I am using following to fill my listview and don't want to display item if I clicked on btn_Delete, I successfully removed item from hasValues but it shows me the blank item in listview,
I want to remove this blank listview item from List.
If any body knows how to do this please reply .
Thanks,

private class MyArrayAdapter extends ArrayAdapter
    {
        private List> myData = new ArrayList>();

        public MyArrayAdapter(Context context, int textViewResourceId, List> objects)
        {
            super(context, textViewResourceId, objects);
            context = getContext();
            myData = objects;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent)
        {
            View v = convertView;
            try
            {
                if(v == null)
                {
                    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    v = inflater.inflate(R.layout.listSomeThing, null);
                }
                if(hasValues != null && !hasValues.get(DatabaseConstant.key_STATUS).equals("D"))
                {
                    btn_Delete.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) 
                        {
                           //delete item from HasValues..
                        }
                }
else
{
    v.setVisibility(View.GONE);
}               
            }
            catch (Exception e) 
            {
                Utility.saveExceptionDetails(LogsDetails.this, e);
                e.printStackTrace();
            }

            return v;
        }
    }
3
私はこれがこの目的のための最善の解決策ではないと思います。特定の条件を設定し、getViewでポジション番号を増やしてみてください。
追加された 著者 Setmax,

3 答え

ListViewアダプタの myData から削除し、 notifyDataSetChanged を呼び出す必要があります。
それ以外の場合は、 hasValues があるかどうかに関わらず、getViewが呼び出され、リスト項目が移入されます。 (代わりにnullを返そうとしないでください - うまくいきません)。

6
追加された

リストからアイテムを削除し、データが変更されたことをアダプタに通知するメソッドを作成できます。

btn_Delete.setOnClickListener(new View.OnClickListener() 
{
   @Override
   public void onClick(View v) 
   {
   deleteItemAtId(position);
   }
};

このメソッドを作成します。

void deleteItemAtId(int id)
{
   myData.remove(id);
  //This ensure that getView is called again
   notifyDataSetChanged();
}
0
追加された

カスタムビューアクティビティのリストから要素を削除し、それをある一時一覧に格納し、その一時一覧をカスタムアダプタに渡します。カスタムアダプターでは何もできません。

0
追加された