簡體   English   中英

如果沒有結果,敬酒

[英]show toast if no result

我正在使用過濾式SearchView。 一切正常,但是,如果沒有結果,我想烤面包。

怎么辦? 謝謝

我已經在下面發布了我的代碼,所以任何幫助都將非常棒……

我沒有在其中放置任何代碼,因為我不知道如何顯示“未找到結果”

CustomFilter.java

 public CustomFilter(ArrayList<Player> filterList, MyAdapter adapter)
    {
        this.adapter=adapter;
        this.filterList=filterList;

    }

    //FILTERING OCURS
    @Override
    protected FilterResults performFiltering(CharSequence constraint) {
        FilterResults results=new FilterResults();

        //CHECK CONSTRAINT VALIDITY
        if(constraint != null && constraint.length() > 0)
        {
            //CHANGE TO UPPER
            constraint=constraint.toString().toUpperCase();
            //STORE OUR FILTERED PLAYERS
            ArrayList<Player> filteredPlayers=new ArrayList<>();

            for (int i=0;i<filterList.size();i++)
            {
                //CHECK
                if(filterList.get(i).getName().toUpperCase().contains(constraint))
                {
                    //ADD PLAYER TO FILTERED PLAYERS
                    filteredPlayers.add(filterList.get(i));
                }
            }

            results.count=filteredPlayers.size();
            results.values=filteredPlayers;
        }else
        {
            results.count=filterList.size();
            results.values=filterList;

        }


        return results;
    }

    @Override
    protected void publishResults(CharSequence constraint, FilterResults results) {

       adapter.players= (ArrayList<Player>) results.values;

        //REFRESH
        adapter.notifyDataSetChanged();
    }
}

myadapter.java

  @Override
    public int getItemCount() {
        return players.size();
    }

    //RETURN FILTER OBJ
    @Override
    public Filter getFilter() {
        if (filter == null) {
            filter = new CustomFilter(filterList, this);
        }

        return filter;
    }
}

您可以將下面的代碼放在行中,找不到任何結果。

Toast.makeText(context, text, duration).show();

您可以如下獲取上下文對象,

Context context = getApplicationContext();

text是您要顯示使用的任何字符串/消息,例如“未找到結果”

CharSequence text = "No Results found";

duration可以設置為Toast.LENGTH_LONG

首先,在CustomFilter.java聲明一個Context mcontext變量,然后像這樣在構造函數中接受一個Context

Context mcontext;
    public CustomFilter(ArrayList<Player> filterList, MyAdapter adapter, Context con)
        {
            this.adapter=adapter;
            this.filterList=filterList;
            this.mcontext=con;
        }

在您的publishResults方法上,檢查結果計數是否為0。

如果為0,則顯示這樣的烤面包。

if(results.count==0)
{
 Toast.makeText(mcontext, "No results...", Toast.LENGTH_SHORT).show();
}

else
{

adapter.players= (ArrayList<Player>) results.values; 
adapter.notifyDataSetChanged();

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM