2016-10-02 2 views
0

erhalten Kürzlich habe ich beschlossen, eine App in Android zu entwickeln. Ich habe dieses Forum und andere Tools online benutzt, um mir beizubringen, wie man eine einfache App entwickelt, die den Benutzer nach seinem Namen fragt und einige Fragen beantwortet. Mein Ziel ist es, dem Benutzer zu ermöglichen, die Antworten an jede E-Mail ihrer Wahl zu senden. Bisher habe ich in der Lage gewesen, dies zu erreichen:Die Zeichenfolge eines ausgewählten RadioButton in Android

Von: ********@gmail.com

An: ********@gmail.com

Betrifft: Umfrage Ergebnis für John Doe

Name: John Doe

Frage 1: true

Ende der Umfrage.

Mein Ziel ist es, in die E-Mail nicht den Zustand der Frage 1 (d. H. "True") aufzunehmen, sondern stattdessen die Antwort auf ihre Frage zu zeigen. Zum Beispiel, Frage 1: B. 26-35.

Ich habe online in den letzten paar Tagen gesucht, aber ich habe Probleme, einige Hilfe zu finden, da ich noch neu im Programmieren bin. Die nächste Sache, auf die ich stieß, war diese SO Question, aber es ist nicht das, wonach ich suche. Jede Hilfe oder Anleitung würde sehr geschätzt werden.

MainActivity.java

package com.example.android.sampleupdrs; 

import android.content.Intent; 
import android.net.Uri; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity 
{ 

    TextView tv; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     tv=(TextView)findViewById(R.id.textView1); 
    } 

    public void emailResult (View view) 
    { 
     EditText nameField = (EditText) findViewById(R.id.name_field); 
     String name = nameField.getText().toString(); 

     RadioGroup radioQ1 = (RadioGroup) findViewById(R.id.radio_Q1); 
     final RadioButton checkedRadioQ1 = (RadioButton) radioQ1.findViewById(radioQ1.getCheckedRadioButtonId()); 
     boolean isCheckedRadioQ1 = checkedRadioQ1.isChecked(); 
     radioQ1.setOnCheckedChangeListener (new RadioGroup.OnCheckedChangeListener() 
     { 
      public void onCheckedChanged (RadioGroup group, int checkedQ1Id) 
      { 
       RadioButton checkedRadioButton = (RadioButton)group.findViewById(checkedQ1Id); 
       boolean isCheckedRadioQ1 = checkedRadioQ1.isChecked(); 
       if (isCheckedRadioQ1) 
       { 
        tv.setText("Checked: " +checkedRadioButton.getText()); 
       } 
      } 
     }); 

     String resultsEmail = createEmailSummary(name, isCheckedRadioQ1); 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setData(Uri.parse("mailto:")); 
     intent.putExtra(Intent.EXTRA_SUBJECT, "Survery result for " + name); 
     intent.putExtra(Intent.EXTRA_TEXT, resultsEmail); 
     if (intent.resolveActivity(getPackageManager()) != null) { 
      startActivity(intent); 
     } 
    } 

    private String createEmailSummary (String name, boolean isCheckedRadioQ1) { 
     String resultsEmail = "Name: " + name; 
     resultsEmail += "\nQuestion 1 " + isCheckedRadioQ1; 
     resultsEmail += "\nEnd of Survey"; 
     return resultsEmail; 
    } 
} 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     android:paddingBottom="@dimen/activity_vertical_margin"> 

     <EditText 
     android:id="@+id/name_field" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:hint="Name" 
     android:inputType="textCapWords"/> 

     <TextView 
     android:text="@string/q1string" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" 
     android:id="@+id/textView1"/> 

     <RadioGroup 
      android:id="@+id/radio_Q1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 

      <RadioButton 
       android:id="@+id/q1b0_url" 
       android:text="@string/q1b0string" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/textView1" 
       android:layout_alignParentStart="true" 
       android:layout_marginBottom="15dp" /> 

      <RadioButton 
       android:id="@+id/q1b1_url" 
       android:text="@string/q1b1string" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/q1b0_url" 
       android:layout_alignParentStart="true" 
       android:layout_marginBottom="15dp" 
       android:gravity="top" /> 

      <RadioButton 
       android:id="@+id/q1b2_url" 
       android:text="@string/q1b2string" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/q1b1_url" 
       android:layout_alignParentStart="true" 
       android:layout_marginBottom="15dp" 
       android:gravity="top" /> 

      <RadioButton 
       android:id="@+id/q1b3_url" 
       android:text="@string/q1b3string" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/q1b2_url" 
       android:layout_alignParentStart="true" 
       android:layout_marginBottom="15dp" 
       android:gravity="top" /> 

      <RadioButton 
       android:id="@+id/q1b4_url" 
       android:text="@string/q1b4string" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/q1b3_url" 
       android:layout_marginBottom="30dp" 
       android:gravity="start" /> 

     </RadioGroup> 


     <TextView 
      android:text="@string/q2string" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentStart="true" 
      android:id="@+id/textView2"/> 

     <RadioGroup 

    <Button 
     android:text="Next" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/nextQ1" 
     android:onClick="emailResult" 
     android:layout_weight="1" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_gravity="right" /> 

    </LinearLayout> 
</ScrollView> 

strings.xml

<resources> 
    <string name="app_name">Survey</string> 
    <string name="q1string">1. Select age group</string> 
    <string name="q1b0string">A. 18-25</string> 
    <string name="q1b1string">B. 26-35</string> 
    <string name="q1b2string">C. 36-45</string> 
    <string name="q1b3string">D. 46-59</string> 
    <string name="q1b4string">E. 60+</string> 

</resources> 

Antwort

0

Wenn ich richtig verstehe, was Sie brauchen, ist checkedRadioButton.getText().toString() und nicht die boolean isCheckedRadioQ1.

1

In MainActivity Klasse, Sie den Text des Radiobutton auf diese Weise erhalten kann:

boolean isCheckedRadioQ1 = checkedRadioQ1.isChecked(); 
text = ""; 
if (isCheckedRadioQ1) { 
    text = checkedRadioQ1.getText().toString(); 
    tv.setText("Checked: " +checkedRadioButton.getText()); 
} 

In Verfahren createEmailSummary tun

resultsEmail += "\nQuestion 1 " + text; 

statt

resultsEmail += "\nQuestion 1 " + isCheckedRadioQ1 

Sie muss text als Parameter senden r zu createEmailSummary statt isCheckedRadioQ1

+0

Vielen Dank für Ihre Antwort. Ich habe alle Änderungen vorgenommen, die Sie vorgeschlagen haben, und jetzt in der E-Mail bekomme ich ein Leerzeichen nach Frage 1. Soll ich Text als String text = "" deklarieren; unter öffentliche Klasse MainActivity erweitert AppCompatActivity. – rl1987

Verwandte Themen