2012-05-17 108 views
0

我設置了兩個按鈕。一個打開撰寫短信的意圖,另一個打開撰寫電子郵件的意圖。短信意圖工作正常,但電子郵件按鈕不響應。香港專業教育學院創建了一個categorychooser但那不露面....直到我點擊短信按鈕Android電子郵件意向

這是我的代碼

case R.id.button2: 
    { 
     String phoneNumber = "xxxxxxxxxx";`` 
     Intent smsIntent = new Intent(Intent.ACTION_SENDTO); 
     smsIntent.addCategory(Intent.CATEGORY_DEFAULT); 
     smsIntent.setType("vnd.android -dir/mms-sms"); 
     smsIntent.setData(Uri.parse("sms:"+phoneNumber)); 
     startActivity(smsIntent); 


    } 
    case R.id.button3: 
    { 
     Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
     emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
     emailIntent.setType("plain/text"); 
     startActivity(Intent.createChooser(emailIntent, "Send email...")); 

    } 

任何想法?

+2

你忘了在每個案例 – Lucifer

回答

5

儘量把break;每個case XXX {}

+0

沒有幫助後放置'break'語句。現在即使在選擇了短信選項後,類別選擇器也不會出現 – QuantumFoam

+0

如果您在案例結束時沒有中斷語句,那麼如果您單擊R.id.button2,以下所有情況下的代碼也將被執行。如果您在添加休息時發生某些事情中斷,那麼它會被打破。至少你距離答案更近一步 –

0

郵件意圖纔有效,如果你使用它在安裝了郵件客戶端的真實設備之後。我猜你在模擬器中有問題。爲了使它在那裏工作,您需要安裝一個支持此意圖的客戶端。我猜你會得到如下錯誤:

android.content.ActivityNotFoundException: No Activity found to handle Intent 
0

檢查設計中按鈕的ID(xml文件)。

0

developer guide for common intents發出警告的情況下,如果有一個活動響應的意圖異常被拋出任何應用:

注意:如果在設備上沒有的應用程序,可以接收 隱含的意圖,它會在調用startActivity()時崩潰。若要 首先驗證應用程序是否存在以接收該意圖,請在您的Intent對象上調用 resolveActivity()。如果結果非空,則至少有一個應用程序可以處理該意圖,並且 調用startActivity()會很安全。如果結果爲空,則不應使用 意圖,如果可能,應該禁用調用 意圖的功能。

例如:

private void sendEmail(String address) { 
    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
    emailIntent.setType("plain/text"); 
    if (emailIntent.resolveActivity(getPackageManager()) != null) { 
     startActivity(Intent.createChooser(emailIntent, "Send email...")); 
    } else { 
     // TODO: Tell your user about it 
    } 
} 

或者你可以做你的onCreate()的檢查,以完全隱藏的按鈕。