2013-05-08 71 views
0

不知道爲什麼得到錯誤的參數異常崩潰的android代碼。 任何幫助將不勝感激....爲什麼非法的參數異常?

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    TextView tv=(TextView)findViewById(R.id.test_id); tv.append("\n"); 
    Uri u=Uri.parse("content://sms/inbox"); 
    try{ 
     Toast.makeText(this, getContentResolver().delete(u, "_id like ?", new String[]{"2"})+"", Toast.LENGTH_LONG).show(); 
    }catch(Exception e){ 
     Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show(); 
    } 
} 
+2

我們可以有堆棧跟蹤嗎?這將非常有幫助。 – michaelb958 2013-05-08 01:22:09

回答

0

我認爲像只能用字符串

Toast.makeText(this, getContentResolver().delete(u, "_id = ?", 
        new String[]{"2"})+"", Toast.LENGTH_LONG).show(); 
+0

感謝您的及時響應。將盡快獲得bak給你...... – 2013-05-08 02:01:28

+0

看到我對添加+的評論。這是非常好的.. – 2013-05-08 02:06:58

+0

你是對的,我在閱讀時不小心。我以爲你添加「」到新的String []。發佈您的日誌貓 – 2013-05-08 02:23:57

1

的刪除URI中使用的 「內容://短信/」 + ID;

Cursor c = getApplicationContext().getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null,null); 
try { 
     while (c.moveToNext()) { 
     int id = c.getInt(0); 
     getApplicationContext().getContentResolver().delete(Uri.parse("content://sms/" + id), null, null); 
     } 

    }catch(Exception e){ 
     Log.e(this.toString(),"Error deleting sms",e); 
    }finally { 
     c.close(); 
    } 
+0

+是完全正確的。它不是錯誤。我只是通過添加空白將返回的結果轉換爲字符串。 – 2013-05-08 02:06:13

+0

更爲標準的方法是調用toString(),它可能更高效,更可讀。 – 2013-05-08 02:12:43

+0

另外,buptcoder實際上並不是在抱怨+,他正在回答你的問題......你需要給你的uri添加一個id。 – 2013-05-08 02:13:55