Android在列表视图中隐藏行

时间:2017-05-24 09:33:49

标签: android listview contacts

在我的Android应用程序中,我从联系人列表中获取联系人并存储在列表数组中。这个联系人列表我在我的应用程序中显示以供选择。在联系人列表中,通常用户可以存储atm引脚,传递书号等...所以我想避免存储10位以下的任何数字。这里的问题是我将联系人姓名存储到一个列表数组,联系人号码存储到另一个列表数组。如果我只删除号码..那么我很难删除相应的联系人姓名..我在下面给我的代码..任何人都可以帮我解决方案

String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));


 public View getView(final int position, final View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            View vi=convertView;
            if(convertView==null)
                vi = mInflater.inflate(R.layout.contact, null);
            tv= (TextView) vi.findViewById(R.id.name);
            tv1= (TextView) vi.findViewById(R.id.mobile);
            cb = (CheckBox) vi.findViewById(R.id.selected);
            tv.setText(name1.get(position));
            //tv.setSelected(true);
            tv1.setText(phno1.get(position));
            cb.setTag(position);
            cb.setChecked(mCheckStates.get(position, false));
            cb.setOnCheckedChangeListener(this);


            String phnoCheckTendigits = tv1.getText().toString();

            if(phnoCheckTendigits.length() < 10)
            {
                vi.setVisibility(View.GONE);
            } 
}

我喜欢这个......但是我在这里空行......

//亲爱的朋友们,我找到了一个解决方案......它有效...我在下面给它......我接受Danieles的答案......因为这是非常好的答案..我做了我的方式..多数民众赞同我在这里添加

 int idx = 0;

                while (idx < phno1.size())
                {
                    if(phno1.get(idx).length() < 10)
                    {
                        // Remove item
                        phno1.remove(idx);
                        name1.remove(idx);
                    }
                    else
                    {
                        ++idx;
                    }
                }

1 个答案:

答案 0 :(得分:1)

我建议您创建一个Model类,它有两个参数,Name和Number,然后创建一个List,您可以从Contacts获取,自己创建或让用户创建它。获得列表后,您可以轻松管理,添加和删除项目。

这是一个Model类示例:

public class Model {
    private String name;
    private String number;

    public Model(String name, String number) {
        this.name = name;
        this.number = number;
}

    public String getName() { return this.name; }
    public String getNumber() { return this.number; }
    public void setName(String name) { this.name = name; }
    public void setNumber(String number) {this.number = number; }

}

然后可能有一个不同的类来创建一个List:

public class ModelList {
    private List<Model> list;

    public void createList() {
        list.add(new Model("name", "0123456789"));
        ...
    }

    public List<Model> getList() { return list; }
}

很简单,如果你想从列表中删除一个元素:

list.removeAt(position /* int */); //if you want to remove a specific position

list.remove(Model); // if you want to remove a specific model

注意:我不会限制用户使用数字&gt; = 10,您的应用在电话号码较小的某些国家/地区甚至是紧急号码通常都无用由3个字符组成。