选中单选按钮时,如何在另一个活动中显示EditText输入?

时间:2016-02-05 03:07:08

标签: java android android-edittext android-radiogroup android-radiobutton

我目前正在开展此活动(类ChallengeNew52),其中我有一组RadioGroup。在这个RadioGroup中,我有一个EditText(id.etGoalNew),它位于RadioButton(id.rButtonwithGoal)下。

当选中此RadioButton(活动)时,假设允许用户访问/输入EditText并显示他们键入的其他活动。我想我已经完成了启用部分,但现在问题是将它显示给另一个活动(class challengetab)。我似乎无法在此特定RadioButton下的此EditText中正确显示字符串。此“Switch”中的另一个案例中的(endlessMode)正在显示。

代码没有出错,应用程序启动正常但它没有显示我想要的内容。希望您能查看冲突或编码是什么。

以下是该活动的代码:

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

以下是我对其他活动进行编码的方式:

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

3 个答案:

答案 0 :(得分:0)

用户完成填充后,您永远无法从名为EditText的{​​{1}}获取最终值。

在为etGoalNew额外设置Intent时,请在点击监听器中尝试执行此操作:

"goalName"

答案 1 :(得分:0)

您需要在第二个活动中获取捆绑包: 试试这个:

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

答案 2 :(得分:0)

Flag