我是一个新的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;
}
}
这是我的第二个活动文件,我想将文本视图输出更改为我在第一个活动中输入的字符串。有时我的应用程序崩溃。
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;
}
}}
问题可能是 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
也有可能为null甚至v
,您可以使用类似的空检查来修复这些错误
好人。谢谢大家回答我的问题。我只是一个人弄清楚。尽管不确定如何,但是我基本上重写了第二个活动文件。检查此网站的格式:https://developer.android.com/reference/android/widget/button.html
我想我做了一些愚蠢的问题,但我不确定它们是什么。