2016-03-07 38 views
-1

我创建的应用程序中有一部分允许用户将信息输入到八个不同的TextField中。这些领域是:从TextField存储用户输入

  1. 名称
  2. 地址
  3. 国家
  4. 邮编
  5. 电话
  6. 电子邮件
  7. 年龄

现在,当这些信息完成并且用户点击提交按钮时,我希望在点击按钮之后直接将信息发送到我的个人电子邮件地址,或者稍后存储要查看的信息。我是比较新的Android开发,但是,我想,我应该做的方法中的以下,我会打电话的时候,按钮是挖掘像这样:

final EditText moverName = (EditText)findViewById(R.id.nameRegistration); 
String name = regName.getText().toString(); 

我已经搜查,搜查,并能找不到我想要完成的任何事情。有没有可能将信息直接发送到我的电子邮件?或者我需要以某种方式存储它以备以后查看。我的Java文件我到目前为止:

public class UserRegistrationActivity extends AppCompatActivity { 

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

    public void sendFeedback(View button) { 

     final EditText userName = (EditText)findViewById(R.id.nameRegistration); 
     String name = regName.getText().toString(); 

     final EditText userStreetAddress = (EditText)findViewById(R.id.userStreetAddressRegistration); 
     String address = userStreetAddress.getText().toString(); 

     final EditText userCity = (EditText)findViewById(R.id.userCityRegistration); 
     String city = userCity.getText().toString(); 

     final EditText userState = (EditText)findViewById(R.id.userStateRegistration); 
     String state = userState.getText().toString(); 

     final EditText userZip = (EditText)findViewById(R.id.userZipRegistration); 
     String zip = userZip.getText().toString(); 

     final EditText userPhone = (EditText)findViewById(R.id.userPhoneRegistration); 
     String phone = userPhone.getText().toString(); 

     final EditText userEmail = (EditText)findViewById(R.id.userEmailRegistration); 
     String email = userEmail.getText().toString(); 

     final EditText userDOB = (EditText)findViewById(R.id.userDOB); 
     String dob = userDOB.getText().toString(); 

    } 
} 

在此先感谢!

+1

你见过吗? http://stackoverflow.com/questions/2020088/sending-email-in-android-using-javamail-api-without-using-the-default-built-in-a –

+0

我认为这个问题是可以理解的,所以我不要”不明白为什么它被拒绝投票。 – mur7ay

+0

感谢Adam Ill看看它。 – mur7ay

回答

1

我已经复制了您的问题与此解决方案,它没有测试,但我相信它会指出你一个很好的方向。

要在应用程序中保存,你可以这样做

版式文件

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.inducesmile.emailapplication.MainActivity"> 

<EditText 
    android:id="@+id/nameRegistration" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="Enter name" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true"/> 

<EditText 
    android:id="@+id/userStreetAddressRegistration" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="Enter Address" 
    android:layout_below="@+id/nameRegistration" 
    android:layout_marginTop="8dp" 
    android:layout_centerHorizontal="true"/> 
<EditText 
    android:id="@+id/userCityRegistration" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="Enter City" 
    android:layout_below="@+id/userStreetAddressRegistration" 
    android:layout_marginTop="8dp" 
    android:layout_centerHorizontal="true"/> 

<EditText 
    android:id="@+id/userStateRegistration" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="Enter State" 
    android:layout_below="@+id/userCityRegistration" 
    android:layout_marginTop="8dp" 
    android:layout_centerHorizontal="true"/> 


<EditText 
    android:id="@+id/userZipRegistration" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="Enter Zip Code" 
    android:layout_below="@+id/userStateRegistration" 
    android:layout_marginTop="8dp" 
    android:layout_centerHorizontal="true"/> 

<EditText 
    android:id="@+id/userPhoneRegistration" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="Enter Phone Number" 
    android:layout_below="@+id/userZipRegistration" 
    android:layout_marginTop="8dp" 
    android:layout_centerHorizontal="true"/> 

<EditText 
    android:id="@+id/userEmailRegistration" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="Enter Email" 
    android:layout_below="@+id/userPhoneRegistration" 
    android:layout_marginTop="8dp" 
    android:layout_centerHorizontal="true"/> 

<EditText 
    android:id="@+id/userDOB" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="Enter DOB" 
    android:layout_below="@+id/userEmailRegistration" 
    android:layout_marginTop="8dp" 
    android:layout_centerHorizontal="true"/> 

<Button 
    android:id="@+id/submit_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Submit" 
    android:padding="20dp" 
    android:layout_marginTop="16dp" 
    android:layout_below="@+id/userDOB" 
    android:layout_centerHorizontal="true"/> 

</RelativeLayout> 

活动页面

import android.content.Context; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

import java.util.HashSet; 
import java.util.Set; 

public class MainActivity extends AppCompatActivity { 

private EditText userName; 
private EditText userStreetAddress; 
private EditText userCity; 
private EditText userState; 
private EditText userZip; 
private EditText userPhone; 
private EditText userEmail; 
private EditText userDOB; 

private SharedPreferences prefs; 

private boolean hasDataBeenSaved; 

private Set<String> set; 

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

    prefs=this.getSharedPreferences("settings", Context.MODE_PRIVATE); 
    set = prefs.getStringSet("Personal Information", null); 
    if(set.size() > 0){ 
     hasDataBeenSaved = true; 
    } 

    if(hasDataBeenSaved){ 
     // display the store personal information 

    } 

    userName = (EditText)findViewById(R.id.nameRegistration); 
    userStreetAddress = (EditText)findViewById(R.id.userStreetAddressRegistration); 
    userCity = (EditText)findViewById(R.id.userCityRegistration); 
    userState = (EditText)findViewById(R.id.userStateRegistration); 
    userZip = (EditText)findViewById(R.id.userZipRegistration); 
    userPhone = (EditText)findViewById(R.id.userPhoneRegistration); 
    userEmail = (EditText)findViewById(R.id.userEmailRegistration); 
    userDOB = (EditText)findViewById(R.id.userDOB); 


    Button submitButton = (Button)findViewById(R.id.submit_button); 
    submitButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if(!hasDataBeenSaved){ 
       // Data has not been save then save them 

       String name = userName.getText().toString(); 
       String address = userStreetAddress.getText().toString(); 
       String city = userCity.getText().toString(); 
       String state = userState.getText().toString(); 
       String zip = userZip.getText().toString(); 
       String phone = userPhone.getText().toString(); 
       String email = userEmail.getText().toString(); 
       String dob = userDOB.getText().toString(); 

       if(!isEmpty(name) || !isEmpty(address) || !isEmpty(city) || !isEmpty(state) || !isEmpty(zip) || !isEmpty(phone) || !isEmpty(email) || !isEmpty(dob)){ 
        Toast.makeText(MainActivity.this, "All input field must be filled", Toast.LENGTH_LONG).show(); 
        return; 
       } 

       Set<String> set = new HashSet<String>(); 
       set.add(name); 
       set.add(address); 
       set.add(city); 
       set.add(state); 
       set.add(zip); 
       set.add(phone); 
       set.add(email); 
       set.add(dob); 

       SharedPreferences.Editor edit = prefs.edit(); 
       edit.putStringSet("Personal Information", set); 
       edit.commit(); 
      } 
     } 
    }); 
} 

private boolean isEmpty(String input){ 
    if(input.equals("")){ 
     return true; 
    } 
    return false; 
} 
} 

对于将信息发送给您的电子邮件,您可以使用

  1. Android的意图

    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
    

在这种情况下,它只会推出一个客户端电子邮件应用程序

  • 如果你想使用一个按钮,点击发送电子邮件所有可用的用户输入的信息,然后参考此链接 - Sending Email in Android using JavaMail API without using the default/built-in app
  • 2

    在你的情况,你有2个选择发送电子邮件:使用的应用程序

    1. 发送电子邮件:在这种情况下,唯一可以做的事情是所有要发送前的信息发布电子邮件应用程序在电子邮件正文中填充。但是,在这种情况下,您必须再次按最后的“发送”。你可以在这里看到的细节 - How to open Email program via Intents (but only an Email program)

    2. 与任何电子邮件提供商,如MailChimp,sendgrid等集成,并直接从您的应用程序或通过您的后端进行API调用。

    +0

    感谢您的信息普兰。 – mur7ay