按钮不执行电子邮件意图

时间:2016-10-15 15:06:40

标签: android android-intent

我是android开发的新手。这是我的应用程序的代码。我一直试图让按钮初始化并通过电子邮件发送应用程序意图,但它无法正常工作。我在下面分享了我的文件。请帮忙。

Android Manifest

<activity android:name=".ordernow" android:label="Order Details">
    <intent-filter>
        <action android:name="android.intent.action.SENDTO" />
        <data android:scheme="mailto" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

</activity>

activity_ordernow.xml LAYOUT

<Button
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:textAllCaps="true"
    android:id="@+id/email_form"
    android:text="Get Quote"
    android:onClick="getQuote" />

Ordernow.java

public void getQuote (View view){

        String addresses = "omukiga@omukiga.com";
        String subject = "Get Quote Online";
        String body = "This is the body text for me";

        //Compose email to send to Intraline
        Intent intent = new Intent(Intent.ACTION_SENDTO);
        //For only email apps to handle the information Also Experiment about using whatsapp
        intent.setData(Uri.parse("mailto:"));
        intent.putExtra(Intent.EXTRA_EMAIL, addresses);
        intent.putExtra(Intent.EXTRA_SUBJECT, subject);
        intent.putExtra(Intent.EXTRA_TEXT, body);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }

}

请帮我找到qlitch。除了解释之外,github的一个好的要点和正确的代码行将被用来。

3 个答案:

答案 0 :(得分:0)

  

应用程序崩溃了。

如果您的意思是应用程序崩溃,use LogCat to examine the Java stack trace associated with the crash

  

事实上,应用程序只是在不改变状态的情况下反复运行我的活动

首先,从<intent-filter> ordernow元素中删除<activity>。如果你正在编写一个电子邮件应用程序,<intent-filter>是合适的,但事实并非如此。

此时,您可能会发现单击按钮时没有任何反应。这表示您的设备上没有支持ACTION_SENDTO mailto: Uri的应用。您可能需要安装或配置电子邮件客户端才能使其正常工作。

答案 1 :(得分:0)

最终代码应如下所示。

activity_ordernow.xml LAYOUT

<Button
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:textAllCaps="true"
    android:id="@+id/email_form"
    android:text="Get Quote"
    android:onClick="getQuote" />

Ordernow.java

public void getQuote (View view){

        String addresses = "omukiga@omukiga.com";
        String subject = "Get Quote Online";
        String body = "This is the body text for me";

        //Compose email to send to Intraline
        Intent intent = new Intent(Intent.ACTION_SENDTO);
        //For only email apps to handle the information Also Experiment about using whatsapp
        intent.setData(Uri.parse("mailto:"));
        intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "example@example.com" });
        intent.putExtra(Intent.EXTRA_SUBJECT, subject);
        intent.putExtra(Intent.EXTRA_TEXT, body);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }

}

答案 2 :(得分:0)