我想从收件箱中读取短信并将其显示在列表视图中,其中包含少量短信内容提供商,如ID,发件人编号,正文,时间。 Rite现在我能够读取短信并在列表视图中仅显示短信的正文,但也需要显示其他字段。 我正在使用Android Studio进行应用开发 这是一个代码,我可以在listview中显示短信的主体
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, android.R.id.text1, messageArray);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
public ArrayList<String> readAllData() {
ArrayList<String> sms = new ArrayList<>();
Uri us = Uri.parse("content://sms/inbox");
cr = getContentResolver().query(us, null, null, null, null);
String body = cr.getString(cr.getColumnIndexOrThrow("body"));
sms.add(body);
return sms;
}
我想显示Sms ID,发件人姓名和时间。 请任何人都可以帮助我...
答案 0 :(得分:0)
在listView中显示多个信息。对于初学者,尝试使用CustomAdapter学习列表视图,请参阅以下文章:
当你深入理解它时,尝试使用&#34;新版本&#34;列表视图是RecyclerView:http://www.androidhive.info/2016/01/android-working-with-recycler-view/
您还可以在Youtube上轻松找到许多教程,其中包含关键字&#34;自定义列表视图在Android&#34;
我认为这对你有帮助!
答案 1 :(得分:0)
首先,您需要知道有关SMS的列。 Vikas Paditar在这篇文章中列出了他们(标记为最佳答案):https://stackoverflow.com/a/4023737/3953199
接下来,您需要使用getColumnIndexOrThrow(String column)
- 方法中的列名称,就像qiuping345在此帖子中所做的那样(也是最佳答案):https://stackoverflow.com/a/5570463/3953199
以下是第二个链接的摘录:
SmsRep singleSms = new SmsRep();
singleSms.id = cursor.getInt(cursor.getColumnIndexOrThrow("_id"));
singleSms.address = cursor.getString(cursor.getColumnIndexOrThrow("address"));
singleSms.timestamp = cursor.getLong(cursor.getColumnIndexOrThrow("date")) / 1000; //### the sent time
singleSms.type = cursor.getInt(cursor.getColumnIndexOrThrow("type"));
singleSms.protocol = cursor.getInt(cursor.getColumnIndexOrThrow("protocol"));
基本上,您有关于SMS的不同列,它提供了各种信息。