मैं एक ऐसा ऐप्लिकेशन बना रहा हूं जो प्रेषक संख्या के आधार पर इनबॉक्स में संदेश खोजें। यहां मेरा कोड है:क्वेरी फ़ंक्शन में LIKE क्लॉज का उपयोग कैसे करें
public void onClick(View v)
{
Toast.makeText(this, "search", Toast.LENGTH_LONG).show();
final Uri SMS_INBOX = Uri.parse("content://sms/inbox");
String[] colList = {"address", "body"};
Cursor c = getContentResolver().query(SMS_INBOX, colList, null, null,"DATE desc");
String yz= String.valueOf(c.getCount());
Toast.makeText(this, yz, Toast.LENGTH_LONG).show();
if(c.moveToFirst())
{
Toast.makeText(this, searchtxt.getText(), Toast.LENGTH_LONG).show();
for(int i=0;i<c.getCount();i++)
{
String number=c.getString(c.getColumnIndexOrThrow("address")).toString();
boolean match = number.toUpperCase().indexOf(searchtxt.getText().toString()) != -1;
if (match)
{
Toast.makeText(this, String.valueOf(i), Toast.LENGTH_LONG).show();
String body= c.getString(c.getColumnIndexOrThrow("body")).toString();
tv.setText(tv.getText() + "\n" + body);
}
c.moveToNext();
}
}
else
{
Toast.makeText(this, "Inside else", Toast.LENGTH_LONG).show();
}
c.close();
}
उपरोक्त कोड ठीक काम करता है लेकिन यह इनबॉक्स में सभी संदेशों को पुनर्प्राप्त करता है। मैं चाहता हूं कि इसे केवल उन संदेशों को पुनर्प्राप्त करना चाहिए जो प्रेषक संख्या से मेल खाते हैं। इसके लिए मैंने LIKE क्लॉज का उपयोग करके एक क्वेरी की कोशिश की, लेकिन इसके साथ यह 0 रिकॉर्ड देता है। LIKE खंड का उपयोग करने का सही तरीका क्या है। "%" और "_": यहाँ कोड है जो मुझे पसंद का उपयोग कर
String[] colList = {"address", "body"};
String[] argList = {"'%"+searchtxt.getText().toString()+"%'"};
Cursor c = getContentResolver().query(SMS_INBOX, colList, "address LIKE ?", argList,"DATE desc");
String yz= String.valueOf(c.getCount());
Toast.makeText(this, yz, Toast.LENGTH_LONG).show();
कृपया मेरी मदद करो बाहर .... धन्यवाद कोशिश की ...
शायद आपको ILIKE का उपयोग करना चाहिए, जो क्वेरी केस असंवेदनशील – Alptugay
थैंक्स अल्पटुगे .... बनाता है लेकिन यह काम करता है .. –