Android 尝试在活动之间传递数据时出错
这就是我所拥有的:Android 尝试在活动之间传递数据时出错,android,email,android-activity,Android,Email,Android Activity,这就是我所拥有的: import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
public class FireScreen extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firescreen);
EditText FIinvolvedtext = (EditText) findViewById(R.id.FIinvolvedtext);
String fireinvolvedsave = FIinvolvedtext.getText().toString();
View FIUnitsStart = findViewById(R.id.FIUnitsStart);
FIUnitsStart.setOnClickListener(this);
View FIMainResume = findViewById(R.id.FIMainResume);
FIMainResume.setOnClickListener(this);
Spinner fire_type_spin = (Spinner) findViewById(R.id.FItypespin);
ArrayAdapter<CharSequence>
adapter = ArrayAdapter.createFromResource(this, R.array.typespin_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
fire_type_spin.setAdapter(adapter);
Spinner fire_type_array = (Spinner) findViewById(R.id.FIareaspin);
ArrayAdapter<CharSequence>
adapter1 = ArrayAdapter.createFromResource(this, R.array.areaspin_array, android.R.layout.simple_spinner_item);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
fire_type_array.setAdapter(adapter1);
Spinner action_type_spin = (Spinner) findViewById(R.id.FIactionspin);
ArrayAdapter<CharSequence>
adapter11 = ArrayAdapter.createFromResource(this, R.array.actionspin_array, android.R.layout.simple_spinner_item);
adapter11.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
action_type_spin.setAdapter(adapter11);}
public void onClick(View v) {
switch(v.getId()){
case R.id.FIUnitsStart:
Intent UnitScreen = new Intent(this, UnitScreen.class);
UnitScreen.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(UnitScreen);
break;
case R.id.FIMainResume:
Intent Main = new Intent(this, Main.class);
Main.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(Main);
break;
Intent pass = new Intent(getApplicationContext(), Main.class);
String keyIdentifer = null;
pass.putExtra("Involved", fireinvolvedsave);
// Getting an error here: fireinvolvedsave cannot be resolved to a variable
startActivity(pass);}}}
导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.EditText;
导入android.widget.Spinner;
公共类FireScreen扩展活动实现OnClickListener{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.firescreen);
EditText FIinvolvedtext=(EditText)findViewById(R.id.FIinvolvedtext);
字符串fireinvolvedsave=FIinvolvedtext.getText().toString();
View FIUnitsStart=findViewById(R.id.FIUnitsStart);
FIUnitsStart.setOnClickListener(此);
查看FIMainResume=findViewById(R.id.FIMainResume);
FIMainResume.setOnClickListener(此);
微调器火灾类型微调=(微调器)findViewById(R.id.FItypespin);
阵列适配器
adapter=ArrayAdapter.createFromResource(这个,R.array.typespin\u数组,android.R.layout.simple\u spinner\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
点火类型旋转设置适配器(适配器);
微调器火灾类型数组=(微调器)findViewById(R.id.FIareaspin);
阵列适配器
adapter1=ArrayAdapter.createFromResource(这个,R.array.areaspin\u数组,android.R.layout.simple\u spinner\u项);
adapter1.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
fire_类型_阵列。设置适配器(适配器1);
微调器动作类型微调器=(微调器)findViewById(R.id.FIactionspin);
阵列适配器
adapter11=ArrayAdapter.createFromResource(这个,R.array.actionspin\u数组,android.R.layout.simple\u spinner\u项);
adapter11.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
动作类型设置适配器(适配器11);}
公共void onClick(视图v){
开关(v.getId()){
案例R.id.FIUnitsStart:
Intent UnitScreen=新Intent(这个,UnitScreen.class);
UnitScreen.setFlags(意图.标志\u活动\u重新排序\u至\u前端);
星触觉(单位屏幕);
打破
案例R.id.FIMAIN简历:
Intent Main=新Intent(这个,Main.class);
Main.setFlags(Intent.FLAG\u ACTIVITY\u REORDER\u TO\u FRONT);
星触觉(主);
打破
Intent pass=newintent(getApplicationContext(),Main.class);
字符串keyIdentifer=null;
通行证。putExtra(“涉及”,fireinvolvedsave);
//此处获取错误:fireinvolvedsave无法解析为变量
星触觉(通过);}}}
帮助--我有7个活动的数据需要传递回主活动,以便我可以将它们放入电子邮件中--有点卡在这里fireinvolvedsave无法看到,因为您将其声明为局部变量,与读取它的方法不同;您需要在
公共类FireScreen之后使用公共字符串
等将其声明为活动字段。。。{
试试像这样的东西
Intent myIntent = getIntent();
String strText = myIntent.getStringExtra("Involved");
然后
emailIntent.putExtra(EXTRA_TEXT, strText);
这样做:
final String fireinvolvedsave = FIinvolvedtext.getText().toString();
看看这是否有效
编辑:因此对格式设置感到困惑。核心问题是在实例函数中使用方法局部变量。您需要将其作为整个活动的实例变量。您的onCreate
现在看起来如下所示:
String fireinvolvedsave;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firescreen);
EditText FIinvolvedtext = (EditText) findViewById(R.id.FIinvolvedtext);
fireinvolvedsave = FIinvolvedtext.getText().toString();
有几种不同的方法可以做到这一点。例如,您可以按照Ben的建议让fireinvolvedsave保存一个实例变量 但是,由于您似乎只在onClick()方法中使用它,下面是最简单的方法
试试这个
公共类FireScreen扩展活动实现OnClickListener
{
串列火灾;
EditText-FIinvolvedtext;
查看FIUnitsStart、FIMainResume;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.firescreen);
FIinvolvedtext=(EditText)findViewById(R.id.FIinvolvedtext);
fireinvolvedsave=FIinvolvedtext.getText().toString();
FIUnitsStart=findViewById(R.id.FIUnitsStart);
FIUnitsStart.setOnClickListener(此);
FIMainResume=findViewById(R.id.FIMainResume);
FIMainResume.setOnClickListener(此);
微调器火灾类型微调=(微调器)findViewById(R.id.FItypespin);
阵列适配器
adapter=ArrayAdapter.createFromResource(这个,R.array.typespin\u数组,android.R.layout.simple\u spinner\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
点火类型旋转设置适配器(适配器);
微调器火灾类型数组=(微调器)findViewById(R.id.FIareaspin);
阵列适配器
adapter1=ArrayAdapter.createFromResource(这个,R.array.areaspin\u数组,android.R.layout.simple\u spinner\u项);
adapter1.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
fire_类型_阵列。设置适配器(适配器1);
微调器动作类型微调器=(微调器)findViewById(R.id.FIactionspin);
阵列适配器
adapter11=ArrayAdapter.createFromResource(这个,R.array.actionspin\u数组,android.R.layout.simple\u spinner\u项);
adapter11.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
动作类型旋转设置适配器(适配器11);
}
公共void onClick(视图v)
{
开关(v.getId())
{
案例R.id.fiunitssstart:Intent UnitScreen=新Intent(this,UnitScreen.class);
UnitScreen.setFlags(意图.标志\u活动\u重新排序\u至\u前端);
星触觉(单位屏幕);
打破
案例R.id.FIMAIN简历:意向主=新意向(此,主。
String fireinvolvedsave;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firescreen);
EditText FIinvolvedtext = (EditText) findViewById(R.id.FIinvolvedtext);
fireinvolvedsave = FIinvolvedtext.getText().toString();
EditText FIinvolvedtext = (EditText) findViewById(R.id.FIinvolvedtext);
String fireinvolvedsave = FIinvolvedtext.getText().toString();
just try this
public class FireScreen extends Activity implements OnClickListener
{
String fireinvolvedsave ;
EditText FIinvolvedtext;
View FIUnitsStart,FIMainResume;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.firescreen);
FIinvolvedtext = (EditText) findViewById(R.id.FIinvolvedtext);
fireinvolvedsave = FIinvolvedtext.getText().toString();
FIUnitsStart = findViewById(R.id.FIUnitsStart);
FIUnitsStart.setOnClickListener(this);
FIMainResume = findViewById(R.id.FIMainResume);
FIMainResume.setOnClickListener(this);
Spinner fire_type_spin = (Spinner) findViewById(R.id.FItypespin);
ArrayAdapter<CharSequence>
adapter = ArrayAdapter.createFromResource(this, R.array.typespin_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
fire_type_spin.setAdapter(adapter);
Spinner fire_type_array = (Spinner) findViewById(R.id.FIareaspin);
ArrayAdapter<CharSequence>
adapter1 = ArrayAdapter.createFromResource(this, R.array.areaspin_array, android.R.layout.simple_spinner_item);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
fire_type_array.setAdapter(adapter1);
Spinner action_type_spin = (Spinner) findViewById(R.id.FIactionspin);
ArrayAdapter<CharSequence>
adapter11 = ArrayAdapter.createFromResource(this, R.array.actionspin_array, android.R.layout.simple_spinner_item);
adapter11.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
action_type_spin.setAdapter(adapter11);
}
public void onClick(View v)
{
switch(v.getId())
{
case R.id.FIUnitsStart: Intent UnitScreen = new Intent(this, UnitScreen.class);
UnitScreen.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(UnitScreen);
break;
case R.id.FIMainResume:Intent Main = new Intent(this, Main.class);
Main.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(Main);
break;
default: Intent pass = new Intent(FireScreen.this, Main.class);
pass.putExtra("Involved", fireinvolvedsave);
startActivity(pass);
}
}