Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android ListView适配器-隐藏项_Java_Android_Android Listview - Fatal编程技术网

Java Android ListView适配器-隐藏项

Java Android ListView适配器-隐藏项,java,android,android-listview,Java,Android,Android Listview,我有一个android listView,它的填充方式如下: final ListView userList = (ListView)root.findViewById(R.id.userList); UserListAdapter adapter = new UserListAdapter(context, userItemList, getActivity()); userList.setAdapter(adapter); if (convertView == null) { La

我有一个android listView,它的填充方式如下:

final ListView userList = (ListView)root.findViewById(R.id.userList);
UserListAdapter adapter = new UserListAdapter(context, userItemList,
getActivity());
userList.setAdapter(adapter);
if (convertView == null) {
    LayoutInflater mInflater = (LayoutInflater)
            context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    convertView = mInflater.inflate(R.layout.user_item_list, null);
}
final TextView txtButtonFollow = (TextView) convertView.findViewById(R.id.button);
if(user == "showed") {
    button.setVisibility(View.INVISIBLE);
}else {
    button.setVisibility(View.INVISIBLE);
}
return convertView;
UserListAdapter如下所示:

final ListView userList = (ListView)root.findViewById(R.id.userList);
UserListAdapter adapter = new UserListAdapter(context, userItemList,
getActivity());
userList.setAdapter(adapter);
if (convertView == null) {
    LayoutInflater mInflater = (LayoutInflater)
            context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    convertView = mInflater.inflate(R.layout.user_item_list, null);
}
final TextView txtButtonFollow = (TextView) convertView.findViewById(R.id.button);
if(user == "showed") {
    button.setVisibility(View.INVISIBLE);
}else {
    button.setVisibility(View.INVISIBLE);
}
return convertView;
出于某种原因,所有用户按钮都将显示(首先),但如果我上下滚动列表并“重新输入”用户项,按钮将隐藏(这是我需要的)

有人有同样的问题吗? 是否无法隐藏“滚动”上的元素? 我是否必须设置两个用户项目列表(一个带按钮,另一个不带按钮)

编辑:此处是完整的getView():

你可以改变这个

 UserListAdapter adapter = new UserListAdapter(context, userItemList,getActivity());

getActivity()
将为您提供上下文

相应地更改适配器构造函数

使用
ViewHolder
图案

public static class ViewHolder
{
     TextView txtButton ;
} 
在getView中

  ViewHolder holder;
  if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater)
                context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        holder = new ViewHolder();
        convertView = mInflater.inflate(R.layout.user_item_list, null);
        holder.txtButton  = (TextView) convertView.findViewById(R.id.button); 
        convertView.setTag(holder) 
    } else {

         holder = (ViewHolder) convertView.getTag();
    } 
    UserItem userItem = userItems.get(position);
    String isContact = userItem.getIsContact();

    if(isContact.equals("showed")) {
    holder.txtButton .setVisibility(View.VISIBLE);
   }else{
     holder.txtButton .setVisibility(View.INVISIBLE);
   }

return convertView;
你的if语句

 if(isContact) { // makes no sense. isContact is not boolean
你可以改变这个

 UserListAdapter adapter = new UserListAdapter(context, userItemList,getActivity());

getActivity()
将为您提供上下文

相应地更改适配器构造函数

使用
ViewHolder
图案

public static class ViewHolder
{
     TextView txtButton ;
} 
在getView中

  ViewHolder holder;
  if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater)
                context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        holder = new ViewHolder();
        convertView = mInflater.inflate(R.layout.user_item_list, null);
        holder.txtButton  = (TextView) convertView.findViewById(R.id.button); 
        convertView.setTag(holder) 
    } else {

         holder = (ViewHolder) convertView.getTag();
    } 
    UserItem userItem = userItems.get(position);
    String isContact = userItem.getIsContact();

    if(isContact.equals("showed")) {
    holder.txtButton .setVisibility(View.VISIBLE);
   }else{
     holder.txtButton .setVisibility(View.INVISIBLE);
   }

return convertView;
你的if语句

 if(isContact) { // makes no sense. isContact is not boolean
你可以改变这个

 UserListAdapter adapter = new UserListAdapter(context, userItemList,getActivity());

getActivity()
将为您提供上下文

相应地更改适配器构造函数

使用
ViewHolder
图案

public static class ViewHolder
{
     TextView txtButton ;
} 
在getView中

  ViewHolder holder;
  if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater)
                context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        holder = new ViewHolder();
        convertView = mInflater.inflate(R.layout.user_item_list, null);
        holder.txtButton  = (TextView) convertView.findViewById(R.id.button); 
        convertView.setTag(holder) 
    } else {

         holder = (ViewHolder) convertView.getTag();
    } 
    UserItem userItem = userItems.get(position);
    String isContact = userItem.getIsContact();

    if(isContact.equals("showed")) {
    holder.txtButton .setVisibility(View.VISIBLE);
   }else{
     holder.txtButton .setVisibility(View.INVISIBLE);
   }

return convertView;
你的if语句

 if(isContact) { // makes no sense. isContact is not boolean
你可以改变这个

 UserListAdapter adapter = new UserListAdapter(context, userItemList,getActivity());

getActivity()
将为您提供上下文

相应地更改适配器构造函数

使用
ViewHolder
图案

public static class ViewHolder
{
     TextView txtButton ;
} 
在getView中

  ViewHolder holder;
  if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater)
                context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        holder = new ViewHolder();
        convertView = mInflater.inflate(R.layout.user_item_list, null);
        holder.txtButton  = (TextView) convertView.findViewById(R.id.button); 
        convertView.setTag(holder) 
    } else {

         holder = (ViewHolder) convertView.getTag();
    } 
    UserItem userItem = userItems.get(position);
    String isContact = userItem.getIsContact();

    if(isContact.equals("showed")) {
    holder.txtButton .setVisibility(View.VISIBLE);
   }else{
     holder.txtButton .setVisibility(View.INVISIBLE);
   }

return convertView;
你的if语句

 if(isContact) { // makes no sense. isContact is not boolean

实现视图持有者模式并使用
.equals
比较字符串,您的if/else语句有点。。。在当前状态下无用发布整个适配器代码您有conertView,但按钮初始化在哪里?实现视图保持器模式并使用
.equals
比较字符串您的if/else语句有点。。。在当前状态下无用发布整个适配器代码您有conertView,但按钮初始化在哪里?实现视图保持器模式并使用
.equals
比较字符串您的if/else语句有点。。。在当前状态下无用发布整个适配器代码您有conertView,但按钮初始化在哪里?实现视图保持器模式并使用
.equals
比较字符串您的if/else语句有点。。。在当前状态下无用发布整个适配器代码您有conertView,但按钮初始化在哪里?好的,找到了;)。谢谢,这帮了我很大的忙。好的,明白了;)。谢谢,这帮了我很大的忙。好的,明白了;)。谢谢,这帮了我很大的忙。好的,明白了;)。谢谢,这对我帮助很大。