2012-12-02 84 views
1

我想從收件箱中讀取所有的短信,並檢查特定的關鍵字。我開發了這個代碼,但它不會產生所需的結果。請告訴我要更正。你可以建議我在這段android代碼中進行更正嗎?

public void onClick(View arg0){ 
     Uri uri = Uri.parse("content://sms/inbox"); 
     ContentResolver content = getContentResolver(); 
     Cursor c = content.query(uri,new String[] { "_id","address","body","person"}, null, null, null); 
     if(c.getCount() > 0) 
     { 
      while(c.moveToNext()) 
      { 
       colName = colName + c.getString(c.getColumnIndex("body")) + "\n"; 
       if(colName.contains("hai")) 

        textview1.setText("present"); 

       else 
        textview1.setText("not present"); 
      } 
     } 

    } 
    }); 

} 
+0

「但它不會產生所需的結果」是指? –

+0

有什麼錯誤?在這裏發佈你的logcat –

+0

沒有錯誤或警告。當我運行應用程序時不會顯示任何內容@imrankhan – user1870724

回答

1

因爲你的問題是相當含糊,當涉及到提供的信息,這只是一個猜測:

如果您有多個短信,其中一個包含「海」字,如果這條短信是不是最後一個結果文本將是「不存在」,因爲你是覆蓋這個TextView的在迭代用光標。

因此,例如,如果你添加設置的TextView爲「展示」後回報,你應該能夠看到結果「存在」,如果這個詞出現在至少一個短信。

if(colName.contains("hai")){ 
     textview1.setText("present"); 
     return; 
}else{ 
     textview1.setText("not present"); 
} 
+1

我會在退出循環後將文本設置爲「不存在」,以避免多次設置。 – mercutio

+0

當然是的:)希望現在他知道可能出現的錯誤部分是什麼,他可能會計數出現的數量,並在循環結束後執行任何UI更改。 –

+0

感謝您的幫助。但是現在我得到一個錯誤,因爲'[2012-12-03 00:33:25 - Emulator]警告:數據分區已經在使用中。變化不會持久! [2012年12月3日零時33分25秒 - 模擬器]警告:SD卡圖像已在使用中:C:\用戶\蹺\ .android \ AVD \ 2.1.avd/sdcard.img [2012年12月3日00:33:25 - Emulator] ko:快照存儲已經在使用:C:\ Users \ Rocker \ .android \ avd \ 2.1.avd/snapshots.img' – user1870724

相關問題