0

ユーザー名、電話番号、電子メールアドレスについてmysqlからデータベースにアクセスするAndroidアプリケーションを作成しています。Android電話の連絡先リストからの電話番号と、mysqlデータベースからの電話番号を比較したいと思います。その目的のために、私は 2 つの arraylist を使用します。1 番目は電話連絡用、2 番目は mysql の電話番号です。私の主な問題は、両方のarraylistを比較すると結果が表示されないことです。ここにコードを添付して、誰かがこの問題を解決するのを手伝ってください。

public class PhoneNoActivity extends Activity{
    JSONArray jArray,jArray1;
    JSONObject jobj;
    String result = null,phone=null;
    InputStream is = null;
    StringBuilder sb=null;
    double lat=0;
    double lon=0;
    String user=null;
    ArrayList<NameValuePair> nameValuePairs;

    ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }

        String phno=null;
        ArrayList<String> cntPhone=new ArrayList<String>();
        ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        if (cur.getCount() > 0) {
            while (cur.moveToNext()) {
                String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                    Cursor pCur = cr.query(
                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null);
                    while (pCur.moveToNext()) {
                        String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                        if(phoneNo.length()>10) {
                            phno=phoneNo.subSequence(phoneNo.length()-10, phoneNo.length()).toString();
                            // Log.e(name, phno);
                        }
                        cntPhone.add(phoneNo);
                    } 
                    pCur.close();
                }
            }
        }

        ArrayList<String> cntOnline=new ArrayList<String>();
        try {
            nameValuePairs = new ArrayList<NameValuePair>();

            /*String phone=null;
            for(int k=0;k<=cntPhone.size();k++) {
                Log.e("k",k+"");
                phone=cntPhone.get(k);
                nameValuePairs.add(new BasicNameValuePair("phone", phone));
            */
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://10.0.2.2/ah_login_api/select.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();

            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
            sb = new StringBuilder();
            sb.append(reader.readLine() + "\n");

            String line="0";
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result=sb.toString();

            Log.e("result=", result);
            jArray = new JSONArray(result);
            JSONObject json_data=null;
            for(int i=0;i<jArray.length();i++){
                json_data = jArray.getJSONObject(i);
                user=json_data.getString("user");
                phone=json_data.getString("phone");
                lat=json_data.getDouble("email");

                cntOnline.add(phone);
            }
            for(String s:cntOnline) {
                for(String s1:cntPhone ) {
                    if(s.equals(s1)) {
                        Log.e("match found", phone);
                    }
                }
            }
            /*
                for(int l=0;l<cntOnline.size();l++) {
                    Log.e("loop start", ""+l);
                    for(int k=0;k<cntPhone.size();k++) {
                        if(cntPhone.get(k).trim().equals(cntOnline.get(l).trim())) {
                            Log.e("match found", phone);
                        }
                    }      
                }*/
        //}
        } catch(Exception ex) {
            Log.e("Exception  in ",ex.toString());
        }
    }
}

これは、詳細にアクセスするための私のphpコードです

<?php
    mysql_connect("localhost","root","");
    mysql_select_db("MyContact");
    $sql=mysql_query("select * from newuser");
    while($row=mysql_fetch_assoc($sql))
        $output[]=$row;
    print(json_encode($output));
    mysql_close(); 
?>
4

1 に答える 1