Java 安卓意图不起作用

Java 安卓意图不起作用,java,android,android-intent,Java,Android,Android Intent,我刚刚开始在android上开发应用程序,但当我试图创建电子邮件意图时,我遇到了一个错误。单击按钮时,文件崩溃。代码如下: MainActivity.java:- public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSt

我刚刚开始在android上开发应用程序,但当我试图创建电子邮件意图时,我遇到了一个错误。单击按钮时,文件崩溃。代码如下: MainActivity.java:-

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    Button myButton;
    myButton = (Button)findViewById(R.id.enter);

    myButton.setOnClickListener(new OnClickListener() {
        @Override
        private void onClick () {
            submit();
        }
    }

    );

    public void submit() {

        // Getting text from the EditText View
        EditText editText = (EditText) findViewById(R.id.name);
        String text = editText.getText().toString();
        // Creating an email intent


        Intent email = new Intent(Intent ACTION_SEND);
        email.putExtra(Intent.EXTRA_EMAIL, newString[]{"youremail@gmail.com"});
        email.putExtra(Intent.EXTRA_SUBJECT, text);
        email.setType("message/rfc822");
        startActivity(Intent.createChooser(email, "Choose an Email client :"));
    }
}
activity_main.xml:-

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

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/name"
        android:hint="Name"/>

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/submit"
        android:onClick="submit"
        android:id="@+id/enter" />
</LinearLayout>

您不需要该行:

if (intent.resolveActivity(getPackageManager()) != null) {
另外,我相信Intent.EXTRA_EMAIL需要一个字符串数组。相反,请尝试以下方法:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("*/*");
intent.setData(Uri.parse("mailto:"));
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"xyz@gmail.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, text);
startActivity(Intent.createChooser(intent, "Send Email"));

是的,马特弗雷德回答的是正确的。照他说的去做。如果不起作用,则移除

onClick:"Submit" 
按钮属性

为按钮指定一个特定id,并在活动中初始化按钮

Button myButton;
然后是onCreate活动

myButton = (Button)findViewById(R.id.yourButtonId);
myButton.setOnClickListener(new OnClickListener(){
@Override
private void onClick(){
submit();
}
});
我想我发现了一只虫子

像我所做的那样,替换您的提交方法

    public void submit(){ 

    // Getting text from the EditText View
     EditText editText = (EditText)findViewById(R.id.name);
     String text = editText.getText().toString(); 
    // Creating an email intent


    Intent email =new Intent(Intent ACTION_SEND);   
email.setType("text/plain");
     email.putExtra(Intent.EXTRA_EMAIL,new String[]{"youremail@gmail.com"});
      email.putExtra(Intent.EXTRA_SUBJECT, text);
startActivity(Intent.createChooser(email,"Choose an Email client :"));
您所做的错误是从文本视图中获取文本。您必须从编辑文本中获取它

此外,在您的submit方法中,您已经用IDR.ID.name初始化了TextView。但是在xml中没有TextView,在xml中,EditText是用IDR.ID.name初始化的

发现更多错误

在您编写的xml的按钮属性中

android:onClick="Submit"
但是你的方法名是

submit()
submit()

记住,Java是区分大小写的

还有,我想你可以简单地使用

public void submit(){}
你没有理由使用

public void submit(View v){}
毕竟,正如我所说的,改变每一个代码。不仅是方法。您还可以删除

android:onClick="submit"
也可以从XML的按钮属性中选择

希望您已经理解


--很抱歉我输入了错误的代码。实际上现在我在移动设备上

尝试删除
如果(intent.resolveActivity(getPackageManager())!=null){
发布日志。我还看到在xml中使用
Submit
,而java中的方法名是
Submit
。记住“Submit”和“Submit”它们彼此不同。Dude在button的
xml
中编写
Submit
并在java中编写
Submit()
你认为它将如何工作。我发布了编辑后的代码。在运行应用程序时添加setOnClickListener后出现代码错误。编辑后,代码仍然会在单击提交按钮时崩溃。你能在你的问题中添加新的书面代码吗?请查看我的完整答案。我编辑了很多。我相信如果你这样做,那么它会崩溃当我添加setOnClickListener时,e应该没有错误。它以红色显示。当我运行应用程序时,它无法运行。