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"));
}
}
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);
}