2017-01-02 9 views
4

は、私はそれを見て、これは私がするとして混乱しています...ボタンを複数のテキストビューを自分のメールに送信する方法

Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("message/rfc822"); 
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email"); 
i.putExtra(Intent.EXTRA_TEXT , "body of email"); 
try { 
    startActivity(Intent.createChooser(i, "Send mail...")); 
} catch (android.content.ActivityNotFoundException ex) { 
    Toast.makeText(MyActivity.this, "There are no email clients 
installed.",  
Toast.LENGTH_SHORT).show(); 
} 

電子メールを送信するための最も一般的な方法です何この実際に送信し、そしてどのようにユーザーがクリックしたときに、この現象が発生することですボタン。私はこのような受信者の電子メール(私)を置くのですか?

i.putExtra(Intent.EXTRA_EMAIL , "[email protected]"); 

メールの件名とメッセージ/本文の形式は同じですか?

これは、ユーザーの入力を電子メールの本文に入れる方法ですか。 (ユーザーが複数のeditTextボックスを入力する)

editText userTitle = (editText)findViewById(R.id.idOfTheEditTextBox); 
editText userDescription = (editText)findViewById(R.id.idOfTheEditTextBox); 

次に入力しますか?

i.putExtra(Intent.EXTRA_TEXT , "userTitle", "userDescription"); 

最後に、トーストとメールクライアントのインストールは何を意味しますか?私はアンドロイドアプリの開発には新しく、アンドロイドスタジオでアプリを作っています!すべてのヘルプは非常に感謝しています!ありがとう!

+0

https://developer.android.com/guide/components/intents-common.html#ComposeEmail –

+0

**何の電子メールクライアントがインストールされていないこのリンクを参照してください。**何のメールアプリはGmailなどのデバイスにインストールされないことを意味かその他。 – skydroid

答えて

3

まず「トースト

トーストコードは何のメール クライアントは、ユーザーの携帯電話では利用できないことを通知し、(例:Gmailの、など)

をユーザーに警告を与えるために書かれていますさて、メイン部分、

i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 

はい、上記の行は、受信者の電子メールアドレスを追加します。

だから、この種のものをachiveし、あなたは物事を次の操作を行う必要があり、

  1. は、(ユーザーがあなたがテントに渡すことができrecepeintsメールアドレスを置くことができる)1 EDITTEXTでレイアウトを作成します。クリックすると、Intentを起動します。
  2. さてボタンをクリックすると書き込み、このコードは: -

public class MainActivity extends AppCompatActivity { 
 
    EditText etRecipentId, etSubject, etBody; 
 
    Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
    super.onCreate(savedInstanceState); 
 
    setContentView(R.layout.activity_main); 
 
    etRecipentId = (EditText) findViewById(R.id.email_id); 
 
    etSubject = (EditText) findViewById(R.id.et_subject); 
 
    etBody = (EditText) findViewById(R.id.et_body); 
 
    } 
 

 
    b1.setOnClickListener(new OnClickListener() { 
 
    public void onClick() { 
 
     Intent i = new Intent(Intent.ACTION_SEND); 
 
     i.setType("message/rfc822"); 
 
     i.putExtra(Intent.EXTRA_EMAIL, new String[] { 
 
     etRecipentId.getText().toString(); 
 
     }); 
 
     i.putExtra(Intent.EXTRA_SUBJECT, etSubject.getText().toString();); 
 
     i.putExtra(Intent.EXTRA_TEXT, etBody.getText().toString();); 
 
     try { 
 
     startActivity(Intent.createChooser(i, "Send mail...")); 
 
     } catch (android.content.ActivityNotFoundException ex) { 
 
     Toast.makeText(MyActivity.this, "There are no email clients 
 
    installed.", 
 
      Toast.LENGTH_SHORT).show(); 
 
     } 
 
    } 
 
    });

+0

しかし、編集テキストにあるものは件名として、他の編集テキストは本文としてどのように送信するのですか?私は、件名と本文を入力して作業するようにしましたが、textviews/texteditsの内容を送信します。ありがとう! –

+0

@EthanReinschあなたがコメントで尋ねたものを達成するために、上記の編集コードを親切にチェックしてください。 – Mrinmoy

+0

@EthanReinschありがとうございます!ハッピーコーディング! – Mrinmoy

0

の代わりi.putExtra(Intent.EXTRA_TEXT , "userTitle", "userDescription");使用i.putExtra(Intent.EXTRA_TEXT , userTitle+" "+userDescription);

そして、あなたは例外を取得しているとして、それをチェックしているが任意のgmailのような電子メールクライアントがあなたの電話機にインストールされているかどうか。

関連する問題