在onClick之后,android访问新活动中的EditText数据

时间:2017-02-28 21:06:25

标签: java android xml android-studio

我是一个新的android程序员,我正在使用android studio。我正在创建一个成绩计算器应用程序。我让用户在第一个布局/活动中输入评分等级,然后我可以跳转到第二个布局/活动。但我不确定如何在我的第二个活动文件中访问该数据。我在第二个活动中有一个文本视图,我正在测试是否可以通过更改第二个活动中的文本视图来访问第一个活动中的编辑视图数据但是我失败了。请帮助,谢谢。

以下是我的活动代码。

@Override
public void onClick(View v){
    switch (v.getId()){
        case R.id.button_next:
            scale = (EditText)findViewById(R.id.gradeScale);
            String getInput = scale.getText().toString();
            TextView gc_scale=(TextView) findViewById(R.id.what);
            //gc_scale.setText(getInput);

            Intent i = new Intent(this, classEnterActivity.class);
            i.putExtra("scale",getInput);
            //i.putExtra("scaleG",getInput);
            startActivity(i);
            break;
    }
}

这是我的第二个活动文件,我想将textView输出更改为我在第一个活动中输入的字符串。有时我的应用程序崩溃了。

public class classEnterActivity extends Activity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState){


    super.onCreate(savedInstanceState);
    setContentView(R.layout.course);

    //View ContinueButton = findViewById(R.id.button_next);
    //ContinueButton.setOnClickListener(this);
}

@Override
public void onClick(View v){

    TextView output=(TextView)findViewById(R.id.what);
    Intent intent=getIntent();
    String str=intent.getStringExtra("scale");
    output.setText(str);
    switch (v.getId()){
        case R.id.button_next:

            break;
    }
}}

2 个答案:

答案 0 :(得分:0)

问题可能是getIntent()返回null

@Override
public void onClick(View v) {
    TextView output=(TextView)findViewById(R.id.what);
    Intent intent=getIntent();
    if (intent != null) {
        String str=intent.getStringExtra("scale");
        output.setText(str);
        ...
    }
}

output也有可能为空甚至v,您可以使用类似的空检查修复这些错误

答案 1 :(得分:0)

好的人。谢谢大家回答我的问题。我只是自己弄清楚了。虽然不确定如何,但我基本上重写了我的第二个活动文件。查看此网站的格式:https://developer.android.com/reference/android/widget/Button.html

我想我做了一些愚蠢的问题,但我不确定它们是什么。