0

I am currently working on this activity (class ChallengeNew52) wherein I have a set of RadioGroup. In this RadioGroup, I have an EditText (id.etGoalNew) that is under a RadioButton (id.rButtonwithGoal).

When this RadioButton is checked (active), it is suppose to enable the user to access/type in the EditText and also display what they typed to another activity. I think I accomplished the enabling part but the problem now is displaying it to another activity (class challengetab). I can't seem to display the string correctly from this EditText under this particular RadioButton. The (endlessMode) that is in another case in this "Switch" is displaying.

The code doesn't give an error, the app launches fine yet the it doesn't display what I want. Hope you can check what is the conflict or with the coding.

Here is the code from that activity:

import android.content.Intent;
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.RadioGroup;

public class ChallengeNew52 extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener {

RadioGroup rgInputNew;
EditText etGoalNew;
EditText moIncome;
EditText etGoalNumber;
String challengetitle;
String resultString;
String goalTitle;

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

    //Strings
    final String saveTitle = getResources().getString(R.string.ctabtitle_fiftytwo);

    //Radio Group Enable EditText (goal) input
    rgInputNew = (RadioGroup) findViewById(R.id.rgGoal);
    rgInputNew.setOnCheckedChangeListener(ChallengeNew52.this);

    // EditTexts
    moIncome = (EditText) findViewById(R.id.inputIncomeBar52);
    etGoalNumber = (EditText) findViewById(R.id.inputGoalNumber52);
    etGoalNew = (EditText) findViewById(R.id.inputGoalBar52);
    actv(false);

    // Button Call
    Button startSaving = (Button) findViewById(R.id.buttonStartSaving);

    /*
    BUTTON CLICK!
     */
    startSaving.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            //--Call Equation
            mathFiftyTwo();

            //--To Display to Another Activity ("challengetab" java)
            Intent iStartSaving = new Intent(getApplicationContext(), challengetab.class);

            iStartSaving.putExtra("resultShow", resultString);
            iStartSaving.putExtra("goalName", goalTitle);
            iStartSaving.putExtra("titleChallenge", challengetitle);
            iStartSaving.putExtra("resultShow", resultString);

            ChallengeNew52.this.startActivity(iStartSaving);
        }
    });//--onClickListener

    //--Call outs for the string Challenge Title
    challengetitle = saveTitle;
}//--onCreate

//--To activate Edit Text with Radio Select. (METHOD)
@Override
public void onCheckedChanged (RadioGroup rgInputNew, int rButtonWithGoal) {
    //--String
    final String endlessMode = getResources().getString(R.string.ctabnogoal);

    switch (rButtonWithGoal) {
        case R.id.rButtonWithGoal:
            actv(true);
            dsply(true);
            break;

        case R.id.rbEndlessSaving:
            actv(false);
            //--Call outs for the string Endless Saving Mode
            goalTitle = endlessMode;

            break;
    }
}//--end onCheckedChanged

//--display text method for goalTitle
private void dsply (final boolean active) {
    //--Strings
    final String goalNew = etGoalNew.getText().toString();

    etGoalNew.setEnabled(active);
    if (active) {
        goalTitle = goalNew;
    }
}

//--actv method for activating of Radio Button's EditText
private void actv(final boolean active) {

    etGoalNew.setEnabled(active);
    if (active) {
        etGoalNew.requestFocus();
    }
    etGoalNumber.setEnabled(active);
    if (active) {
        etGoalNumber.requestFocus();
    }
}
 }//--End class

Here is how I coded the other activity:

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class challengetab extends AppCompatActivity {

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

        //TextView for Goals
        TextView goalView = (TextView)findViewById(R.id.cGoalName);
        goalView.setText(getIntent().getExtras().getString("goalName"));

        //TextView for Computation

        TextView resultView = (TextView)findViewById(R.id.cValueSave);
        resultView.setText(getIntent().getExtras().getString("resultShow"));

        // Text View for Title

        //TextView: Receive Challenge Title when button is clicked
        TextView incomeView = (TextView)findViewById(R.id.cTitleChallenge);
        incomeView.setText(getIntent().getExtras().getString("incomeTitle"));
        incomeView.setText(getIntent().getExtras().getString("titleChallenge"));
    }
}
Tunaki
  • 132,869
  • 46
  • 340
  • 423
anpiel
  • 11
  • 2
  • Is the problem the `challengetab ` activity is not populating its `TextView`s after `startSaving` is clicked? – George Mulligan Feb 05 '16 at 03:22
  • It is doing its job with the other textView, it's that particular EditText (id.etGoalNew) which I am trying to display the input in a textview (id.goalView) in the challengetab that doesn't display. – anpiel Feb 05 '16 at 03:25

3 Answers3

0

You are never getting the final value from the EditText named etGoalNew after the user is done populating it.

Try doing this in the click listener when you are setting up the Intent for the "goalName" extra:

if(rgInputNew.getCheckedRadioButtonId() == R.id.rButtonWithGoal) {
    iStartSaving.putExtra("goalName", etGoalNew.getText().toString());
} else {
    iStartSaving.putExtra("goalName", goalTitle);
}
George Mulligan
  • 11,813
  • 6
  • 37
  • 50
  • thanks Sir George Mulligan! this did the trick. Thank you very much! :) The etGoalName the user will input, was displayed in goalView in challenge tab! much appreciated :) thumbs up +1 – anpiel Feb 08 '16 at 10:03
0

You need to get the bundle in the second activity: try this:

Bundle bundle = getIntent().getExtras();
if(bundle!=null){
    String value1 = bundle.getString("resultShow");
    String value2 = bundle.getString("goalName");
    String value3 = bundle.getString("titleChallenge");
    String value4 = bundle.getString("resultShow");
}
ΦXocę 웃 Пepeúpa ツ
  • 47,427
  • 17
  • 69
  • 97
0
 Intent iStartSaving = new Intent(getApplicationContext(), challengetab.class);


            //******** Use getText() for getting the text from edit text &  initialize the string i.e->"resultString","goalTitle" etc
            resultString = moIncome.getText().toString();
            goalTitle = etGoalNumber.getText().toString();
            challengetitle = etGoalNew.getText().toString();

            iStartSaving.putExtra("resultShow", resultString);
            iStartSaving.putExtra("goalName", goalTitle);
            iStartSaving.putExtra("titleChallenge", challengetitle);
            iStartSaving.putExtra("resultShow", resultString);

            ChallengeNew52.this.startActivity(iStartSaving);
Ajaya Tiwari
  • 115
  • 4