У меня есть ListView, показывающий все входящие смс. Я хочу объединить все смс по номеру и просто показать количество смс, полученных этим отправителем, как в главном окне стандартного приложения обмена сообщениями.
Я использую список действий, который использует адаптер курсора, чтобы получить все сообщения, подобные этому:
public class MessageList extends ListActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
inboxcursor = getContentResolver().query(Uri.parse("content://sms/inbox"),new String [] {"person","address","body","date","_id","read", "status", "type", "reply_path_present", "subject","thread_id"} , null, null,"date DESC");
smsadapter = new MessageListAdapter(this,inboxcursor);
getListView().setAdapter(smsadapter);
}
public class MessageListAdapter extends CursorAdapter {
Context mcontext;
LayoutInflater inflater;
public MessageListAdapter(Context context, Cursor cursor) {
super(context, cursor, true);
inflater = LayoutInflater.from(context);
mcontext = context;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
String number = cursor.getString(cursor.getColumnIndex("address"));
TextView numbertext = (TextView) view.findViewById(R.id.number);
numbertext.setText(number);
String message = cursor.getString(cursor.getColumnIndex("body"));
TextView messagetext = (TextView) view.findViewById(R.id.message);
messagetext.setText(message);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = inflater.inflate(R.layout.listitems, null);
return view;
}
}