“如何返回”;“没有搜索结果”;在Android中找到
我的搜索是使用listView完成的,所以当用户输入firstname中的第一个字母时,它将返回结果,如何在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
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]所述: