2017-01-02 5 views
4

나는 그것을 보았다, 이것은 내가에 관한 혼란 스러워요 ...버튼을 내 이메일에 여러 Textviews 제출하는 방법?

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]"}); 

예 위의 행은 수신자 이메일 주소를 추가합니다.

그래서 이런 일을 실현하려, 당신은
  1. 가 (사용자가 recepeints 당신이 의도에 전달할 수있는 이메일 주소를 넣을 수 있습니다) 하나 글고 치기로 레이아웃을 작성, 다음과 같은 일을 할 필요가있다. 클릭 한 번으로 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과 같은 이메일 클라이언트가 휴대 전화에 설치되어 있는지 여부.

관련 문제