“如何返回”;“没有搜索结果”;在Android中找到

“如何返回”;“没有搜索结果”;在Android中找到,android,listview,textview,Android,Listview,Textview,我的搜索是使用listView完成的,所以当用户输入firstname中的第一个字母时,它将返回结果,如何在Android中显示“未找到结果”? 请告知,我是否需要创建文本视图 public class ListViewAdapter extends BaseAdapter { // Declare Variables Context mContext; LayoutInflater inflater; private List<User> name

我的搜索是使用listView完成的,所以当用户输入firstname中的第一个字母时,它将返回结果,如何在Android中显示“未找到结果”? 请告知,我是否需要创建文本视图

public class ListViewAdapter extends BaseAdapter {

    // Declare Variables
    Context mContext;
    LayoutInflater inflater;
    private List<User> namelist = null;
    private ArrayList<User> arraylist;

    public ListViewAdapter(Context context,
            List<User> worldpopulationlist) {
        mContext = context;
        this.namelist = worldpopulationlist;
        inflater = LayoutInflater.from(mContext);
        this.arraylist = new ArrayList<User>();
        this.arraylist.addAll(namelist);
    }

    public class ViewHolder {
        TextView firstname;
        TextView lastname;
        TextView position;
        TextView company;
        ImageView pix;
        TextView searchresult;
    }

    @Override
    public int getCount() {
        return namelist.size();
    }

    @Override
    public User getItem(int position) {
        return namelist.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    public View getView(final int position, View view, ViewGroup parent) {
        final ViewHolder holder;
        if (view == null) {
            holder = new ViewHolder();
            view = inflater.inflate(R.layout.listview_item, null);
            // Locate the TextViews in listview_item.xml
            holder.firstname = (TextView) view.findViewById(R.id.firstname);
            holder.lastname = (TextView) view.findViewById(R.id.lastname);
            holder.position= (TextView) view.findViewById(R.id.position);
            holder.company = (TextView) view.findViewById(R.id.company);

            // Locate the ImageView in listview_item.xml
            holder.pix = (ImageView) view.findViewById(R.id.pix);
            view.setTag(holder);

        } else {
            holder = (ViewHolder) view.getTag();
        }
        // Set the results into TextViews
        holder.firstname.setText(namelist.get(position).getFirstName());
        holder.lastname.setText(namelist.get(position).getLastName());
        holder.position.setText(namelist.get(position).getDesignation());
        holder.company.setText(namelist.get(position).getCompanyName());
        // Set the results into ImageView
        holder.pix.setImageResource(namelist.get(position).getProfileImage());
        // Listen for ListView Item Click
        view.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // Send single item click data to SingleItemView Class
                Intent intent = new Intent(mContext, SingleItemView.class);
                // Pass all data country
                intent.putExtra("firstname",
                        (namelist.get(position).getFirstName()));
                intent.putExtra("lastname",
                        (namelist.get(position).getLastName()));
                // Pass all data rank
                intent.putExtra("position",
                        (namelist.get(position).getDesignation()));
                // Pass all data population
                intent.putExtra("company",
                        (namelist.get(position).getCompanyName()));
                // Pass all data flag
                intent.putExtra("pix",
                        (namelist.get(position).getProfileImage()));
                // Start SingleItemView Class
                mContext.startActivity(intent);
            }
        });

        return view;
    }

    // Filter Class
    public void filter(String charText) {
        charText = charText.toLowerCase(Locale.getDefault());
        namelist.clear();
        if (charText.length() == 0) {
            namelist.addAll(arraylist);
        } else {
            for (User wp : arraylist) {
                if (wp.getFirstName().toLowerCase(Locale.getDefault()).contains(charText)||wp.getLastName().toLowerCase(Locale.getDefault()).contains(charText)     ) {
                    namelist.add(wp);
                }
                else
                {

                    //what should I enter here?
                }

            }
        }
        notifyDataSetChanged();
    }



}
公共类ListViewAdapter扩展了BaseAdapter{
//声明变量
语境;
充气机;
私有列表namelist=null;
私有ArrayList ArrayList;
公共ListViewAdapter(上下文,
列表(世界人口列表){
mContext=上下文;
this.namelist=世界人口列表;
充气器=从(mContext)开始的充气器;
this.arraylist=新的arraylist();
this.arraylist.addAll(名称列表);
}
公共类视图持有者{
TextView名字;
文本视图姓氏;
文本视图位置;
文本视图公司;
图像视图pix;
文本视图搜索结果;
}
@凌驾
public int getCount(){
返回namelist.size();
}
@凌驾
公共用户getItem(int位置){
返回姓名列表。获取(职位);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
公共视图getView(最终整数位置、视图视图、视图组父视图){
最终持票人;
如果(视图==null){
holder=新的ViewHolder();
视图=充气机。充气(R.layout.listview_项,空);
//在listview_item.xml中找到文本视图
holder.firstname=(TextView)view.findViewById(R.id.firstname);
holder.lastname=(TextView)view.findViewById(R.id.lastname);
holder.position=(TextView)view.findViewById(R.id.position);
holder.company=(TextView)view.findViewById(R.id.company);
//在listview_item.xml中找到ImageView
holder.pix=(ImageView)view.findViewById(R.id.pix);
视图.设置标签(支架);
}否则{
holder=(ViewHolder)view.getTag();
}
//将结果设置为文本视图
holder.firstname.setText(namelist.get(position.getFirstName());
holder.lastname.setText(namelist.get(position.getLastName());
holder.position.setText(namelist.get(position.getDesignation());
holder.company.setText(namelist.get(position.getCompanyName());
//将结果设置为ImageView
holder.pix.setImageResource(namelist.get(position.getProfileImage());
//侦听ListView项目单击
view.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//将单项单击数据发送到SingleItemView类
意向意向=新意向(mContext,SingleItemView.class);
//通过所有国家/地区的数据
intent.putExtra(“名字”,
(namelist.get(position.getFirstName());
intent.putExtra(“lastname”,
(namelist.get(position.getLastName());
//通过所有数据等级
intent.putExtra(“位置”,
(namelist.get(position.getDesignation());
//通过所有数据填充
intent.putExtra(“公司”,
(namelist.get(position.getCompanyName());
//传递所有数据标志
intent.putExtra(“pix”,
(namelist.get(position.getProfileImage());
//启动SingleItemView类
mContext.startActivity(意图);
}
});
返回视图;
}
//过滤类
公共空过滤器(字符串图表文本){
charText=charText.toLowerCase(Locale.getDefault());
namelist.clear();
如果(ChartText.length()==0){
namelist.addAll(arraylist);
}否则{
用于(用户wp:arraylist){
if(wp.getFirstName().toLowerCase(Locale.getDefault()).contains(ChartText)| wp.getLastName().toLowerCase(Locale.getDefault()).contains(ChartText)){
姓名列表。添加(wp);
}
其他的
{
//我应该在这里输入什么?
}
}
}
notifyDataSetChanged();
}
}

您可以创建一个Toast,它本质上是一个弹出窗口,而不是创建文本视图。您可以这样创建它:

Toast.makeText(mContext, "No Results Found", Toast.LENGTH_SHORT).show();

如果您想让弹出窗口持续更长时间,可以将最后一个参数更改为Toast.LENGTH\u LONG。

在我的应用程序中,对于这种情况,我的列表中有一个项目具有特殊类型的“EMPTY\u RESULT”

基本上,在得到空的结果后,在适配器中生成一个特定类型为“EMPTY_RESUT”的项(表示getCount()==1),并通知数据集更改


然后,当调用getView时,返回空项,您当然可以为它设计一些UI以显示空结果,例如图标和文本“nothing found”。

您的朋友也是如此,您可以使用setEmptyView,如[here][1][1]所述: