如何在 Android 应用程序中为联系我们表单设置 onClickListener
Posted
技术标签:
【中文标题】如何在 Android 应用程序中为联系我们表单设置 onClickListener【英文标题】:How to set onClickListner for contact us form in android app 【发布时间】:2016-11-12 12:57:49 【问题描述】:我在操作栏上为 android 应用程序创建了一个联系我们的表单,我已将它添加到我的应用程序中,它打开并且看起来非常好。我唯一找不到的是如何为提交按钮设置onClickListner
,以便在单击提交按钮后,来自表单的消息应该直接发送到我的电子邮件收件箱。请帮忙,以下是我的代码。
menu_main.xml
<item
android:id="@+id/contact_us"
android:title="Contact us"
android:showAsAction="ifRoom"
android:icon="@drawable/contact_us"
/>
联系布局
contact_us.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:background="#ffffff"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/contact_form_title"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:layout_marginBottom="16dp"
android:layout_marginTop="5dp"
android:text="contact us"
android:textColor="#000000"
android:textSize="20sp"
android:typeface="serif" />
<EditText
android:layout_
android:layout_
android:backgroundTint="@color/colorPrimaryDark"
android:hint="name"
android:inputType="textPersonName" />
<EditText
android:layout_
android:layout_
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:backgroundTint="@color/colorPrimaryDark"
android:hint="Email"
android:inputType="textEmailAddress" />
<EditText
android:layout_
android:layout_
android:backgroundTint="@color/colorPrimaryDark"
android:hint="phone number"
android:inputType="phone" />
<EditText
android:layout_
android:layout_
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:backgroundTint="@color/colorPrimaryDark"
android:gravity="top"
android:hint="your Message"
android:fitsSystemWindows="true"
android:breakStrategy="balanced"
android:inputType="textMultiLine"
android:singleLine="false"
android:padding="5dp" />
<Button
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:background="@color/colorPrimaryDark"
android:elevation="4dp"
android:paddingLeft="70dp"
android:paddingRight="70dp"
android:text="Submit"
android:textColor="#fff" />
</LinearLayout>
MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu)
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
public boolean onOptionsItemSelected(MenuItem item)
switch (item.getItemId())
case R.id.contact_us:
setContentView(R.layout.contact_us);
return true;
return super.onOptionsItemSelected(item);
【问题讨论】:
【参考方案1】:您可以尝试像这样从 XML 添加 onClick:
<Button
android:id="@+id/button1"
android:layout_
android:layout_
android:layout_weight="1"
android:onClick="clickEvent"
android:text="Button 1" />
<Button
android:id="@+id/button2"
android:layout_
android:layout_
android:layout_weight="1"
android:onClick="clickEvent"
android:text="Button 2" />
然后进入主要活动:
public void clickEvent(View v)
if (v.getId() == R.id.button1)
Toast.makeText(MainActivity.this, "you click on button 1",
Toast.LENGTH_SHORT).show();
if (v.getId() == R.id.button2)
Toast.makeText(MainActivity.this, "you click on button 2",
Toast.LENGTH_SHORT).show();
【讨论】:
【参考方案2】:在 MainActivity 的 onCreate 方法上添加这段代码:
final Button item = (Button) findViewById(R.id.btn);
item.setOnClickListener(new OnClickListener()
@Override
public void onClick()
);
此代码添加到您的 xml 文档中的 Button 属性:
android:id="@+id/btn"
【讨论】:
【参考方案3】:通过将android:id="@+id/submit_button
添加到 xml 文档中的 Button 标记,为您的按钮分配一个 ID。
然后,在你的activity的onCreate方法中,添加如下代码
Button submitButton = (Button) findViewById(R.id.submit_button);
submitButton.setOnClickListener(new OnClickListener()
@Override
public void onClick()
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("message/rfc822");
intent.putExtra(Intent.EXTRA_EMAIL , new String[]"recipient@example.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
intent.putExtra(Intent.EXTRA_TEXT , "body of email");
try
startActivity(Intent.createChooser(intent, "Send mail"));
catch (android.content.ActivityNotFoundException e)
Toast.makeText(MyActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
);
不用说,替换 id、subject 和 body 以满足您的需求。
希望对你有帮助
【讨论】:
使用此代码,应用程序提供了手机上所有电子邮件客户端的选项,但我想要的是代替外部电子邮件客户端,应用程序应该能够直接从应用程序本身发送电子邮件。以上是关于如何在 Android 应用程序中为联系我们表单设置 onClickListener的主要内容,如果未能解决你的问题,请参考以下文章
在 OnCreate() Android 中为联系人调用 onActivityResult
Android,如何获取 Facebook/Twitter/etc 联系人照片
如何使用 Flutter Web 通过联系表单发送电子邮件?