Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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
如何在Android中检查数组中的数据?_Android_Arrays_Android Listview_Android Contacts - Fatal编程技术网

如何在Android中检查数组中的数据?

如何在Android中检查数组中的数据?,android,arrays,android-listview,android-contacts,Android,Arrays,Android Listview,Android Contacts,我有我的Android应用程序,我有一个电话联系人列表。我想通过选中复选框和On按钮单击将这些联系人添加到私人列表中。我想要的是,如果联系人已经存在,那么就不应该添加联系人。我怎么能这样做???请帮忙 代码如下: private MyListAdapter adapter; ArrayList<String> item_id = new ArrayList<String>(); ArrayList<String> item_contact_name = new

我有我的Android应用程序,我有一个电话联系人列表。我想通过选中复选框和On按钮单击将这些联系人添加到私人列表中。我想要的是,如果联系人已经存在,那么就不应该添加联系人。我怎么能这样做???请帮忙 代码如下:

private MyListAdapter adapter;
ArrayList<String> item_id = new ArrayList<String>();
ArrayList<String> item_contact_name = new ArrayList<String>();
ArrayList<String> filteredList = new ArrayList<String>();
ArrayList<String> item_contact_number = new ArrayList<String>();
Uri queryUri;
boolean flag = false;
boolean[] selection;
static ArrayList<String> selection_val;
private Button btn_select;
DbManager manager;
String[] contactArray;
Cursor Cursor, cursor1;
public static String[] selectedData;
String phoneNumber;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_contacts);
    manager = new DbManager(this);   
    try{
        queryUri = ContactsContract.Contacts.CONTENT_URI;

        //String selected_data = ContactsContract.Contacts.DISPLAY_NAME + " IS NOT NULL";
        Cursor Cursor = getContentResolver().query
                (ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
        showEvents(Cursor);


        cursor1 = manager.Return_All_Contacts();
        contactArray = showEvents2(cursor1);
        //final ViewHolder holder = new ViewHolder();
        selection = new boolean[item_id.size()];
        selection_val = new ArrayList<String>();
        selectedData=new String[selection.length];

        adapter = new MyListAdapter(this);
        setListAdapter(adapter);

        btn_select = (Button) findViewById(R.id.button1);
        btn_select.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                int len = selection.length;
                int cnt = 0;
                String selectIds = "";
                for (int i = 0; i < len; i++) {
                    if (selection[i]) {

                        cnt++;
                    }
                }

                for (int i = 0; i < selection_val.size(); i++) {
                    //                  selectedData[i]=item_msg_body.get(i);
                    selectedData[i]=selection_val.get(i);
                    selectIds = selectIds + " | " + selection_val.get(i);
                }
                try{
                    addContacts(selectedData);
                }
                catch(Exception ex)
                {
                    Log.e("ERROR", ex.toString());
                }
                if (cnt == 0) {
                    Toast.makeText(getApplicationContext(), "NO Selection",Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(
                            getApplicationContext(),
                            "Your have  Selected   " + cnt + " ids. " + " "+ selectIds, Toast.LENGTH_LONG).show();
                }
            }


        });
    }
    catch(Exception ex)
    {Log.e("Error in retrieving phone", ex.toString());
    }}


public class MyListAdapter extends BaseAdapter{
    Context con;
    private LayoutInflater layoutinf;
    ArrayList<Boolean> itemChecked = new ArrayList<Boolean>();
    ArrayList<String> items_ = new ArrayList<String>();

    public MyListAdapter(
            privateContacts sample_MultipleSelectionActivity) {
        con = sample_MultipleSelectionActivity;
    }

    public int getCount() {
        return item_id.size();
    }

    public Object getItem(int position) {
        return item_id.size();
    }

    public long getItemId(int position) {
        return item_id.get(position).hashCode();
    }

    public View getView(final int position, View convertView, ViewGroup arg2) {

        View v = convertView;
        ViewHolder holder = null;
        if (v == null) {
            layoutinf = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = layoutinf.inflate(R.layout.row_add_contacts, null);
            holder = new ViewHolder();
            holder.chk = (CheckBox) v.findViewById(R.id.checkBox);
            holder.tv_contact_name = (TextView) v.findViewById(R.id.tvname);
            holder.tv_number = (TextView) v.findViewById(R.id.tvphone);
            holder.iv_contact = (ImageView) v.findViewById(R.id.iv_contacts);
            v.setTag(holder);
        } else {
            holder = (ViewHolder) v.getTag();
        }

        holder.chk.setId(position);
        holder.tv_contact_name.setId(position);

        holder.chk.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                try {
                    CheckBox cb = (CheckBox) v;
                    int id = cb.getId();
                    String val = cb.getText().toString();
                    if (selection[id]) {
                        cb.setChecked(false);
                        selection[id] = false;
                        selection_val.remove("" + item_contact_name.get(id));
                    } else {
                        cb.setChecked(true);
                        selection[id] = true;
                        selection_val.add("" + item_contact_name.get(id));
                    }
                    adapter.notifyDataSetChanged();
                } catch (Exception e) {
                    Log.e("error", "" + e.toString());
                }
            }
        });
        holder.chk.setChecked(selection[position]);

        if(selection[position] == true)
        {
            //holder.tv_contact_name.setBackgroundColor(Color.GRAY);

        }
        else
        {
            holder.tv_contact_name.setBackgroundColor(Color.TRANSPARENT);

        }

        //            for(int i=0;i<contactArray.length;i++){
        //            
        //              holder.tv_contact_name.setBackgroundColor(Color.GREEN);
        //            }

        //holder.chk.setText(item_id.get(position));
        holder.tv_contact_name.setText("" + item_contact_name.get(position));
        holder.tv_number.setText("" + item_contact_number.get(position));

        return v;
    }
}

public class ViewHolder {
    private CheckBox chk;
    private TextView tv_contact_name;
    private TextView tv_number;
    private ImageView iv_contact;

}

private void addContacts(final String[] selectedItems) {
    try{

                        manager.open();
                        manager.Insert_phone_contact(selectedItems);
                        manager.close();
                        moveToLogActivity();            

    }
    catch(Exception ex)
    {
        Log.e("ERROR", ex.toString());
    }
}

private void showEvents(Cursor cursor) {

    item_id = new ArrayList<String>(cursor.getCount());
    item_contact_name = new ArrayList<String>(cursor.getCount());
    item_contact_number = new ArrayList<String>(cursor.getCount());

    String id[]=new String[cursor.getCount()];
    int i=0;
    while (cursor.moveToNext()) {
    item_contact_name.add(cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)));
        item_contact_number.add(cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
        i++;
    }


}

private String[] showEvents2(Cursor cursor) {

    String addedContacts[]=new String[cursor.getCount()];

    int i=0;
    while (cursor.moveToNext()) {
        addedContacts[i] = cursor.getString(1);
        i++;
    }

    return addedContacts;

}
@Override
public void onBackPressed() {
    Intent i = new Intent(getApplicationContext(),MainActivity.class);
    startActivity(i);
    finish();
}
private void moveToLogActivity() {
    Intent i = new Intent(this, LogActivity.class); 
       startActivity(i);

}
专用MyListAdapter适配器;
ArrayList项_id=新建ArrayList();
ArrayList项目\联系方式\名称=新建ArrayList();
ArrayList filteredList=新建ArrayList();
ArrayList项目\联系人\编号=新建ArrayList();
乌里·奎尤里;
布尔标志=假;
布尔选择;
静态阵列列表选择;
私人按钮btn_选择;
数据库管理器;
字符串数组;
游标游标,游标1;
公共静态字符串[]selectedData;
字符串电话号码;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u add\u contacts);
manager=新的DbManager(此);
试一试{
queryUri=ContactsContract.Contacts.CONTENT\u URI;
//所选字符串\u data=Contacts contract.Contacts.DISPLAY\u NAME+“不为空”;
Cursor Cursor=getContentResolver().query
(ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,null,null,null,null);
showEvents(光标);
cursor1=manager.Return_All_Contacts();
contactArray=showEvents2(游标1);
//最终视图持有者=新的视图持有者();
选择=新布尔值[item_id.size()];
selection_val=new ArrayList();
selectedData=新字符串[selection.length];
适配器=新的MyListAdapter(此);
setListAdapter(适配器);
btn_选择=(按钮)findViewById(R.id.button1);
btn_select.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
int len=selection.length;
int-cnt=0;
字符串selectIds=“”;
对于(int i=0;i
selection_val.contains("your_contact")

请参阅此

您已将联系人数组定义为

String[] contactArray = {.....};
现在,您可以检查
contactArray
中已包含的联系人,如下所示

Arrays.asList(contactArray).contains(your_contacts)

将电话号码设置为数据库中的主键/唯一键