如何在Android应用程序中设置onClickListner以联系我们表单

时间:2016-07-10 13:25:45

标签: android android-layout onclicklistener android-contacts

我已经在操作栏上为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_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffffff"
        android:orientation="vertical"
        android:padding="16dp">

        <TextView
            android:id="@+id/contact_form_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            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_width="fill_parent"
            android:layout_height="wrap_content"
            android:backgroundTint="@color/colorPrimaryDark"
            android:hint="name"
            android:inputType="textPersonName" />

        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="10dp"
            android:backgroundTint="@color/colorPrimaryDark"
            android:hint="Email"
            android:inputType="textEmailAddress" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:backgroundTint="@color/colorPrimaryDark"
        android:hint="phone number"
        android:inputType="phone" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="150dp"
        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_width="wrap_content"
        android:layout_height="wrap_content"
        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);

3 个答案:

答案 0 :(得分:0)

您可以尝试从XML添加onClick:

<Button
        android:id="@+id/button1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="clickEvent"
        android:text="Button 1" />
<Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        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();
        }
    }

答案 1 :(得分:0)

在onCreate方法的MainActivity中添加此代码:

final Button item = (Button) findViewById(R.id.btn);
item.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick() {

    }
});

此代码指向xml文档中的Button属性:

android:id="@+id/btn"

答案 2 :(得分:0)

通过将android:id="@+id/submit_button添加到xml文档中的Button标记,为您的按钮分配ID。

然后,在您的活动的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();
        }
    }
});

毋庸置疑,请根据您的需要更换身份,主题和身体。

希望有所帮助