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