android - 通过一项 Activity 获得调查中的所有问题和答案,并通过Kotlin发送电子邮件

标签 android android-studio kotlin kotlin-android-extensions

我正在寻找一个调查应用程序,该应用程序将在电子邮件中发送所有TextView内容及其RadioButton响应。我有一个Intent设置,可以自动填充电子邮件,但是我不能添加一个以上的字符串。
这是我的Activity xml文件:

<LinearLayout
    android:id="@+id/layout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/logo2"
        android:layout_width="match_parent"
        android:layout_height="91dp"
        android:contentDescription="logo2"
        app:srcCompat="@drawable/logo" />

    <RadioGroup
        android:id="@+id/group1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TextView
            android:id="@+id/question1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:backgroundTint="#FFFFFF"
            android:clickable="false"
            android:cursorVisible="false"
            android:ems="10"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:inputType="textMultiLine"
            android:text="example question1"
            android:textAlignment="center"
            app:layout_constrainedHeight="true"
            app:layout_constrainedWidth="true"
            tools:layout_editor_absoluteX="35dp"
            tools:layout_editor_absoluteY="186dp" />

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:clickable="true"
            android:text="Yes"
            tools:layout_editor_absoluteX="113dp"
            tools:layout_editor_absoluteY="244dp" />

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:clickable="true"
            android:text="No"
            tools:layout_editor_absoluteX="113dp"
            tools:layout_editor_absoluteY="276dp" />
    </RadioGroup>

    <RadioGroup
        android:id="@+id/group2"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TextView
            android:id="@+id/question2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:backgroundTint="#FFFFFF"
            android:clickable="false"
            android:ems="10"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:inputType="textMultiLine"
            android:text="example question2 "
            android:textAlignment="center"
            app:layout_constrainedHeight="true"
            app:layout_constrainedWidth="true"
            tools:layout_editor_absoluteX="35dp"
            tools:layout_editor_absoluteY="186dp" />

        <RadioButton
            android:id="@+id/radioButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:clickable="true"
            android:text="Yes"
            tools:layout_editor_absoluteX="113dp"
            tools:layout_editor_absoluteY="244dp" />

        <RadioButton
            android:id="@+id/radioButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:clickable="true"
            android:text="No"
            tools:layout_editor_absoluteX="113dp"
            tools:layout_editor_absoluteY="276dp" />
    </RadioGroup>

    <RadioGroup
        android:id="@+id/group3"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TextView
            android:id="@+id/question3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:backgroundTint="#FFFFFF"
            android:clickable="false"
            android:ems="10"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:inputType="textMultiLine"
            android:text="example question3"
            android:textAlignment="center"
            app:layout_constrainedHeight="true"
            app:layout_constrainedWidth="true"
            tools:layout_editor_absoluteX="35dp"
            tools:layout_editor_absoluteY="186dp" />

        <RadioButton
            android:id="@+id/radioButton5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:clickable="true"
            android:text="Yes"
            tools:layout_editor_absoluteX="113dp"
            tools:layout_editor_absoluteY="244dp" />

        <RadioButton
            android:id="@+id/radioButton6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:clickable="true"
            android:text="No"
            tools:layout_editor_absoluteX="113dp"
            tools:layout_editor_absoluteY="276dp" />
    </RadioGroup>

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center"
        android:clickable="true"
        android:onClick="submit"
        android:text="submit"
        tools:ignore="OnClick" />

</LinearLayout>
这是我的Activity Kotlin文件:
class MainActivity2 : AppCompatActivity() {

    @SuppressLint("WrongViewCast")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
        val editTextView:TextView = findViewById(R.id.question1)
        val editTextView1:TextView = findViewById(R.id.question2)
        val editTextView2:TextView = findViewById(R.id.question3)
        val RadioButton:RadioButton = findViewById(R.id.radioButton1)
        val RadioButton1:RadioButton = findViewById(R.id.radioButton2)
        val RadioButton2:RadioButton = findViewById(R.id.radioButton3)

        // get reference to button
        val btn_click_me = findViewById(R.id.button3) as Button
        // set on-click listener
        btn_click_me.setOnClickListener {
            val message = editTextView.getText().toString()
            val message1 = editTextView1.getText().toString()
            val message2 = editTextView2.getText().toString()
            val email = Intent(Intent.ACTION_SEND_MULTIPLE)
            email.putExtra(Intent.EXTRA_EMAIL, arrayOf("email@gmail.com"))
            email.putExtra(Intent.EXTRA_SUBJECT, "test")
            email.putExtra(Intent.EXTRA_TEXT, message)
            email.putExtra(Intent.EXTRA_TEXT, message1)
            email.type = "message/rfc822"
            startActivity(Intent.createChooser(email, "Choose an Email client :"))
        }
    }
}

最佳答案

更好的方法是从所有消息中创建一个字符串,然后将该字符串放入Intent

   btn_click_me.setOnClickListener {
    val message = editTextView.getText().toString()
    val message1 = editTextView1.getText().toString()
    val message2 = editTextView2.getText().toString()

    val allMessages = buildString{
        append(message)
        append("\n") // adds new line remove it if not required.
        append(message1)
        append("\n")
        append(message2)
    }


    val email = Intent(Intent.ACTION_SEND_MULTIPLE)
    email.putExtra(Intent.EXTRA_EMAIL, arrayOf("email@gmail.com"))
    email.putExtra(Intent.EXTRA_SUBJECT, "test")
    email.putExtra(Intent.EXTRA_TEXT, allMessages)
    email.type = "message/rfc822"
    startActivity(Intent.createChooser(email, "Choose an Email client :"))
}

关于android - 通过一项 Activity 获得调查中的所有问题和答案,并通过Kotlin发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63765611/

相关文章:

android - 无法在 Flutter 的 EventChannel 上打开事件流(指定为非 null 的参数为 null)

unit-testing - Kotlin 协程单元测试失败,错误为 "Module with the Main dispatcher had failed to initialize"

kotlin - 尽管有保障,但我的Kotlin代码中仍然存在NullPointerException

java - 如何在 BroadcastReceiver 中打开数据库

安卓 : Difference FloatingActionButton and normal button

java - 如何在 RecyclerView.Adapter 中打开片段以让用户转到其他用户的个人资料

android - GET_SIGNATURES 已弃用

Android Studio Gradle : Please remove usages of `jcenter()` Maven repository from your build scripts/JCenter is at end of life

android - 如何在库 Activity 的 manifest.xml 中指定 .Preference Activity

android - 找人在 android 项目上工作