2011-05-17 92 views
0

之间传递数据这是我有:错误尝试的活动

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

帮助 - 我有数据7周的活动,我需要传递回主活动,所以我可以把它们放入一个电子邮件 - - 有点卡在这里

回答

0

fireinvolvedsave不能被看到,因为你声明它是一个局部变量一个不同的方法,你正在阅读它;你需要将其申报为使用活动的领域,例如,public String等,后public class FireScreen ... {


public class FireScreen extends Activity implements OnClickListener 
{ 
    private 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(); 

    // rest of original code for onCreate goes here 
    } 


    public void onClick(View v) 
    { 
    // original code etc 

    Intent pass = new Intent(getApplicationContext(), Main.class); 

    // this now has a value: 
    pass.putExtra("Involved", fireinvolvedsave); 
    startActivity(pass); 
    } 
} 

试着这么做

Intent myIntent = getIntent(); 
String strText = myIntent.getStringExtra("Involved"); 

然后

emailIntent.putExtra(EXTRA_TEXT, strText); 
+0

我不明白您的评论我很抱歉即时通讯新本 – SLYtiger 2011-05-17 16:32:36

+0

希望这有助于(编辑原文评论) – 2011-05-17 17:57:06

+0

意向通=新的意图(getApplicationContext(),Main.class);仍然显示错误:“无法到达的代码” – SLYtiger 2011-05-17 18:06:56

0

执行此操作:

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(); 
+0

添加最后的字符串相同的错误 – SLYtiger 2011-05-17 16:29:00

+0

谢谢:)应该包括周围的代码。 – Femi 2011-05-17 16:29:55

0

有几种不同的方法可以做到这一点。例如按照Ben的建议,你可以让fireinv解决一个实例变量。

但是,由于您似乎只在您的onClick()方法中使用它,因此以下是最简单的方法。移动从的onCreate()这行的onClick():

EditText FIinvolvedtext = (EditText) findViewById(R.id.FIinvolvedtext); 
String fireinvolvedsave = FIinvolvedtext.getText().toString(); 
+0

我已经这样做了,现在整个Intent传递线都有一个错误,表示无法访问的代码 – SLYtiger 2011-05-28 12:43:51

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

}