按下按钮时崩溃

时间:2014-08-24 19:58:51

标签: android sms android-context

我正在尝试构建一个简单的应用程序,从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。但我怀疑是背景问题。

1 个答案:

答案 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);
}