选中单选按钮后,如何在另一个 activity 中显示 EditText 输入?
How to display EditText input in another activity when Radio Button is checked?
我目前正在研究这个 activity (class ChallengeNew52),其中我有一组 RadioGroup。在此 RadioGroup 中,我有一个位于 RadioButton (id.rButtonwithGoal) 下的 EditText (id.etGoalNew)。
当这个 RadioButton 被选中(激活)时,它应该允许用户在 EditText 中 access/type 并显示他们输入的内容到另一个 activity。我想我完成了启用部分,但现在的问题是将它显示给另一个 activity (class challengetab)。我似乎无法在这个特定的 RadioButton 下从这个 EditText 中正确显示字符串。本"Switch"中另一种情况下的(endlessMode)正在显示。
代码没有出错,应用程序启动正常,但没有显示我想要的内容。希望你能检查一下是什么冲突或编码。
这是来自 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
这是我如何编码另一个 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"));
}
}
在用户完成填充后,您永远不会从名为 etGoalNew
的 EditText
中获得最终值。
在为 "goalName"
extra 设置 Intent
时尝试在点击侦听器中执行此操作:
if(rgInputNew.getCheckedRadioButtonId() == R.id.rButtonWithGoal) {
iStartSaving.putExtra("goalName", etGoalNew.getText().toString());
} else {
iStartSaving.putExtra("goalName", goalTitle);
}
您需要在第二个 activity 中获取捆绑包:
试试这个:
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");
}
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);
我目前正在研究这个 activity (class ChallengeNew52),其中我有一组 RadioGroup。在此 RadioGroup 中,我有一个位于 RadioButton (id.rButtonwithGoal) 下的 EditText (id.etGoalNew)。
当这个 RadioButton 被选中(激活)时,它应该允许用户在 EditText 中 access/type 并显示他们输入的内容到另一个 activity。我想我完成了启用部分,但现在的问题是将它显示给另一个 activity (class challengetab)。我似乎无法在这个特定的 RadioButton 下从这个 EditText 中正确显示字符串。本"Switch"中另一种情况下的(endlessMode)正在显示。
代码没有出错,应用程序启动正常,但没有显示我想要的内容。希望你能检查一下是什么冲突或编码。
这是来自 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
这是我如何编码另一个 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"));
}
}
在用户完成填充后,您永远不会从名为 etGoalNew
的 EditText
中获得最终值。
在为 "goalName"
extra 设置 Intent
时尝试在点击侦听器中执行此操作:
if(rgInputNew.getCheckedRadioButtonId() == R.id.rButtonWithGoal) {
iStartSaving.putExtra("goalName", etGoalNew.getText().toString());
} else {
iStartSaving.putExtra("goalName", goalTitle);
}
您需要在第二个 activity 中获取捆绑包: 试试这个:
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");
}
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);