将新的 received/send 消息添加到列表视图 Android
Add new received/send message to listview Android
我正在制作一个 android 应用来发送和接收短信。
但是我无法在我的 ListView 中显示新收到的消息。
这是我用来填充 ListView 的代码:
ListView lv = (ListView) view.findViewById(R.id.lvConversations);
Cursor c = getActivity().getContentResolver().query(INBOX_URI, projection, "address = '" + address + "'", null, "date");
ConversationCursorAdapter adap = new ConversationCursorAdapter(getActivity(),c);
lv.setAdapter(adap);
lv.setSelection(lv.getCount() - 1);
这是我的 ConversationCursorAdapter
public class ConversationCursorAdapter extends CursorAdapter {
public ConversationCursorAdapter(Context context, Cursor c) {
super(context, c, 0);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.msg, parent, false);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView tvBody = (TextView) view.findViewById(R.id.tvBody);
TextView tvDate = (TextView) view.findViewById(R.id.tvDate);
String body = cursor.getString(cursor.getColumnIndexOrThrow("body"));
Long date = cursor.getLong(cursor.getColumnIndexOrThrow("date"));
tvBody.setText(body);
tvDate.setText(date.toString());
}}
我也有一个侦听器来获取新消息,但让我们首先关注发送消息。当用户点击发送按钮时,消息被发送,但不显示在列表视图中。这是发送消息的代码。
Button btnSend = (Button) view.findViewById(R.id.btnSend);
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText et = (EditText) getView().findViewById(R.id.etSendMessage);
SmsManager manager = SmsManager.getDefault() ;
manager.sendTextMessage(toAddress, null, body, null, null);
et.setText("");
}
});
有人可以告诉我我做错了什么吗?
谢谢!
首先使用一些独特的操作创建广播接收器,例如 String ACTION =
"message.received";
将此操作字符串用作意图过滤器操作字符串
然后在 API.
获取新数据时通知广播接收器
然后将新行添加到列表视图,然后您可以通过 notifyDataSetChanged() 进行归档;
我正在制作一个 android 应用来发送和接收短信。 但是我无法在我的 ListView 中显示新收到的消息。
这是我用来填充 ListView 的代码:
ListView lv = (ListView) view.findViewById(R.id.lvConversations);
Cursor c = getActivity().getContentResolver().query(INBOX_URI, projection, "address = '" + address + "'", null, "date");
ConversationCursorAdapter adap = new ConversationCursorAdapter(getActivity(),c);
lv.setAdapter(adap);
lv.setSelection(lv.getCount() - 1);
这是我的 ConversationCursorAdapter
public class ConversationCursorAdapter extends CursorAdapter {
public ConversationCursorAdapter(Context context, Cursor c) {
super(context, c, 0);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.msg, parent, false);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView tvBody = (TextView) view.findViewById(R.id.tvBody);
TextView tvDate = (TextView) view.findViewById(R.id.tvDate);
String body = cursor.getString(cursor.getColumnIndexOrThrow("body"));
Long date = cursor.getLong(cursor.getColumnIndexOrThrow("date"));
tvBody.setText(body);
tvDate.setText(date.toString());
}}
我也有一个侦听器来获取新消息,但让我们首先关注发送消息。当用户点击发送按钮时,消息被发送,但不显示在列表视图中。这是发送消息的代码。
Button btnSend = (Button) view.findViewById(R.id.btnSend);
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText et = (EditText) getView().findViewById(R.id.etSendMessage);
SmsManager manager = SmsManager.getDefault() ;
manager.sendTextMessage(toAddress, null, body, null, null);
et.setText("");
}
});
有人可以告诉我我做错了什么吗? 谢谢!
首先使用一些独特的操作创建广播接收器,例如 String ACTION = "message.received";
将此操作字符串用作意图过滤器操作字符串
然后在 API.
获取新数据时通知广播接收器然后将新行添加到列表视图,然后您可以通过 notifyDataSetChanged() 进行归档;