Java 安卓意图不起作用
我刚刚开始在android上开发应用程序,但当我试图创建电子邮件意图时,我遇到了一个错误。单击按钮时,文件崩溃。代码如下: MainActivity.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
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应该没有错误。它以红色显示。当我运行应用程序时,它无法运行。