2011-12-22 37 views
1

好吧我試圖把一個字符串並將其放入intent部分,以便我可以讓應用程序發送一封電子郵件。我不能爲我的生活弄清楚如何做到這一點。注意:我是java/android編程的新手。我知道這將爲用戶選擇想要發送的選項。我真的很想要應用程序發送電子郵件並給他們一個確認,但不知道這是否可能。試圖將字符串轉化爲意圖

這裏是我的main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/welcome" /> 

    <EditText 
     android:id="@+id/EditTextName" 
     android:layout_height="wrap_content" 
     android:hint="@string/name" 
     android:inputType="textPersonName" 
     android:layout_width="fill_parent"> 
    </EditText> 

    <EditText 
     android:id="@+id/EditTextEmail" 
     android:layout_height="wrap_content" 
     android:hint="@string/email" 
     android:inputType="textEmailAddress" 
     android:layout_width="fill_parent"> 
    </EditText> 

    <Spinner 
     android:id="@+id/SpinnerStatus" 
     android:layout_height="wrap_content" 
     android:prompt="@string/status" 
     android:layout_width="fill_parent" 
     android:entries="@array/statuslist"> 
    </Spinner> 

    <EditText 
     android:id="@+id/EditTextChangeBody" 
     android:layout_height="wrap_content" 
     android:hint="@string/changebody" 
     android:inputType="textMultiLine" 
     android:lines="5" 
     android:layout_width="fill_parent"> 
    </EditText> 

    <Button 
     android:id="@+id/ButtonSendChange" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:onClick="sendChange" 
     android:text="@string/changebutton"> 
    </Button> 

</LinearLayout> 

這裏是我的MadisonStudios.java

package com.madisonstudios.supportapp; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.Spinner; 

public class MadisonStudios extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 

    public void sendChange(View button) { 
     final EditText nameField = (EditText) findViewById(R.id.EditTextName); 
     String name = nameField.getText().toString(); 

     final EditText emailField = (EditText) findViewById(R.id.EditTextEmail); 
     String email = emailField.getText().toString(); 

     final EditText feedbackField = (EditText) findViewById(R.id.EditTextChangeBody); 
     String changes = feedbackField.getText().toString(); 

     final Spinner feedbackSpinner = (Spinner) findViewById(R.id.SpinnerStatus); 
     String status = feedbackSpinner.getSelectedItem().toString(); 

     Intent it = new Intent(Intent.ACTION_SEND); 
     String[] tos = {getString(R.string.email)}; 
     it.putExtra(Intent.EXTRA_EMAIL, tos); 
     it.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.emailSubject)); 
     it.setType("text/plain"); 
     startActivity(it); 
    } 
} 
+0

是否有任何錯誤發送電子郵件? – jagsler 2011-12-22 09:33:24

+0

請更確切地說明你想要實現什麼。從以上描述中不清楚。 – Sujit 2011-12-22 09:36:46

+0

現在好了不行,但是我在這裏試圖將'String email = emailField.getText()。toString()'字符串定義到'String [] tos = {getString(R.string.email)};''代碼行是我遇到問題的地方。我不知道如何將該字符串放入意圖。 – BrettAdamsGA 2011-12-22 09:37:38

回答

2

可以從context或它的子類像activity訪問getString()

獲得字符串您需要做以下操作

activity.getString(R.string.xyz)

您可以像下面的代碼做一個字符串傳遞到另一個活動。

final Intent activityIntent = new Intent(
       activity.getApplicationContext(), CurrentActivity.class); 
     activityIntent .putExtra("ID", 
       item.ID); 
     activityIntent .putExtra("NAME", 
       item.name); 
     activity.startActivity(activityIntent); 

您可以用下面的代碼

public static void sendEmail(final Activity activity,final String email) { 

    /* Create the Intent */ 
    final Intent emailIntent = new Intent(
      android.content.Intent.ACTION_SEND); 

    /* Fill it with Data */ 
    emailIntent.setType("plain/text"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, 
      new String[] {email }); 
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, 
      "Feedback"); 

    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, ""); 
    /* Send it off to the Activity-Chooser */ 
    activity.startActivity(Intent.createChooser(emailIntent, 
      "Send feedback")); 
}