在我的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;
}
}
答案 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个字符组成。