如果列表有数据,如何启用/禁用按钮

时间:2013-03-20 09:14:29

标签: android

我正在制作一个生日提醒应用程序,其中我允许用户为他们的朋友添加这些号码存储的电话簿

现在我正在尝试做一些小改动,比如在这里我想如果用户已经为电话本朋友添加了生日,那么就不需要显示AddBirthday按钮了,如果用户没有为电话本朋友添加生日那么需要显示AddBirthday按钮

就像在我的电话簿中,人名Akshat为他我已经添加了生日,但在这里我也得到了AddBirthday按钮,但现在我想禁用这个AddBirthday按钮

AccountDatesOfBirthAdapter.java:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (position == 0) {
        if (convertView == null) {
            convertView = this.inflater.inflate(R.layout.editor_account, null);
        }

        ImageView accountIcon = (ImageView) convertView.findViewById(R.id.editor_icon);
        accountIcon.setImageDrawable(this.accountIcon);

        TextView accountType = (TextView) convertView.findViewById(R.id.editor_type);
        accountType.setText(this.accountType);

        TextView accountName = (TextView) convertView.findViewById(R.id.editor_name);
        accountName.setText(this.accountName);

        // To Do:: Enable and Disable button (Birthday Added or not)
        addDateOfBirth = (ImageButton) convertView.findViewById(R.id.editor_new);
        addDateOfBirth.setOnClickListener(this);

        }
        else 
        {               
        DateOfBirth dateOfBirth = this.datesOfBirth.get(position - 1);

        if (convertView == null) {
            convertView = this.inflater.inflate(R.layout.editor_dateofbirth, null);
        }

        TextView date = (TextView) convertView.findViewById(R.id.editor_date);
        date.setText(dateFormatter.format(dateOfBirth.getDate().getTime()));
    }
    return convertView;
}

3 个答案:

答案 0 :(得分:1)

在数据库中检查此人的出生日期及其是否存在

setClickable(false)

AND

setEnabled(false) < / p>

信用:https://stackoverflow.com/a/6750525/2071742

编辑:我认为您希望按钮消失,在这种情况下您应该使用addDateOfBirth.setVisibility(View.GONE);将其删除。

答案 1 :(得分:1)

在您的AccountDatesOfBirthAdapter.java中,您可以输入类似

的条件
if(dateOfBirth != null){
   addDateOfBirth.setVisibility(View.GONE);
}else{
   addDateOfBirth.setVisibility(View.VISIBLE);
}

答案 2 :(得分:1)

是的,我同意@Kameswari,您只需在AccountsDateOfBirthAdapter.java中进行一些小改动:

   if(dateOfBirth != null){
       addDateOfBirth.setVisibility(View.GONE);
        }

您的代码应如下所示:

   TextView accountName = (TextView) convertView.findViewById(R.id.editor_name);
        accountName.setText(this.accountName);

        // To Do:: Enable and Disable button (Birthday Added or not)
        addDateOfBirth = (ImageButton) convertView.findViewById(R.id.editor_new);
        addDateOfBirth.setOnClickListener(this);

        }
        else 
        {               
        DateOfBirth dateOfBirth = this.datesOfBirth.get(position - 1);

        if (convertView == null) {
            convertView = this.inflater.inflate(R.layout.editor_dateofbirth, null);
        }

        TextView date = (TextView) convertView.findViewById(R.id.editor_date);
        date.setText(dateFormatter.format(dateOfBirth.getDate().getTime()));

        if(dateOfBirth != null){
               addDateOfBirth.setVisibility(View.GONE);
        }


    }
    return convertView;
}