你能建议我在这段安卓代码中做出更正吗?

时间:2012-12-02 17:58:37

标签: android sms android-contentresolver

我想从收件箱中读取所有短信并检查一个特定的关键字。我开发了这个代码。但它没有产生所需的结果。请建议我做出更正。

    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");
            }
        }

    }
    });

}

1 个答案:

答案 0 :(得分:1)

由于您提供的信息问题相当模糊,这只是一个猜测:

如果您有多条短信,其中一条包含“hai”字样,如果此短信不是最后一条,则生成的文字将“不存在”,因为您覆盖此文本视图用光标每次迭代。

因此,例如,如果您在将textview设置为“present”后添加一个返回,那么如果该字词出现在至少一条短信中,您应该能够看到结果“存在”。

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