Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按下按钮时崩溃_Android_Sms_Android Context - Fatal编程技术网

Android 按下按钮时崩溃

Android 按下按钮时崩溃,android,sms,android-context,Android,Sms,Android Context,我正试图建立一个简单的应用程序,从短信文件夹中提取未读短信数,并显示在屏幕上,在这里窥探后,我发现下面的代码需要修改 public class SMSReceiver { public SMSReceiver() { // TODO Auto-generated constructor stub } public String getSMS(Context context){ String s = querySMS(context);

我正试图建立一个简单的应用程序,从短信文件夹中提取未读短信数,并显示在屏幕上,在这里窥探后,我发现下面的代码需要修改

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);
    }
}
这是我的布局,没什么特别的


它崩溃时,我试图按下按钮检索短信计数号码,我不知道如何诊断logcat。但我怀疑这是上下文问题

onClick方法应该有一个View参数。 尝试:


请发布logcat。这是onClick方法应该具有的签名。它们必须是公共的,返回void并且有一个View参数。这就是为什么我更喜欢使用OnClickListener而不是XML中的神奇字符串的原因之一。
<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"  />
public void retrieveSMS(View view){
    SMSReceiver s = new SMSReceiver();
    SMS=s.getSMS(this);
    TextView SMSView = (TextView)findViewById(R.id.SMSCount);
    SMSView.setText(SMS);
}