我正在尝试构建一个简单的应用程序,从sms文件夹中绘制未读的SMS计数并将其显示在屏幕上,在此处窥探之后我发现以下代码有用(已修改)
public class SMSReceiver {
public SMSReceiver() {
// TODO Auto-generated constructor stub
}
public String getSMS(Context context){
String s = querySMS(context);
return s;
}
private static String querySMS(Context context){
final Uri SMS_INBOX = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(SMS_INBOX, null, "read = 0", null, null);
int unreadMessagesCount = c.getCount();
String s = Integer.toString(unreadMessagesCount); //convert to string
return s;
}
}
这是我在主
中的代码 public void retrieveSMS(){
SMSReceiver s = new SMSReceiver();
SMS=s.getSMS(this);
TextView SMSView = (TextView)findViewById(R.id.SMSCount);
SMSView.setText(SMS);
}
}
这些是我的布局,没什么特别的
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="91dp"
android:onClick="retrieveSMS"
android:text="@string/button_send" />
<TextView
android:id="@+id/SMSCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" />
当我试图按下按钮检索短信计数时,它会崩溃,我不知道如何诊断logcat。但我怀疑是背景问题。
答案 0 :(得分:0)
onClick方法应该有一个View参数 尝试:
public void retrieveSMS(View view){
SMSReceiver s = new SMSReceiver();
SMS=s.getSMS(this);
TextView SMSView = (TextView)findViewById(R.id.SMSCount);
SMSView.setText(SMS);
}