2011-05-17 81 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); 
    } 
} 

}