2012-06-20 27 views
1

大家好,再次大家好,
這次我有一個意向& Extras的問題。Java/Android:傳遞Intent Extras,然後在另一種方法上使用它

這是我的第一個活動

Intent i1 = new Intent(RoomSetting.this, App.class); 
i1.putExtra("subposition1", "right"); 
final int result=1; 
startActivityForResult(i1, result); 

,並在第二個活動我試圖讓「subposition1」值

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    mAccVals = new Number3d(); 
    Bundle extras = getIntent().getExtras(); 
    String SubPos = extras.getString("subposition1"); 
} 

我的問題是,我怎麼能在另一種方法使用SUBPOS?

對於noobish問題抱歉。在此先感謝

+0

它一直給空值 – Duriothenoob

+1

把它作爲參數傳遞給方法,或它的一個實例變量 – Rajesh

回答

1

只需撥打這個在您的 「其他方法」。

String subposition = getIntent().getStringExtra("subposition1"); 
+0

啊,它的工作原理,以及非常簡單。非常感謝大家 – Duriothenoob

1
String SubPos; 
// declare SubPos String as class variable and you can access anywhere in class<<< 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    mAccVals = new Number3d(); 
    Bundle extras = getIntent().getExtras(); 
    SubPos = extras.getString("subposition1"); 
} 

public void anotherMethod(){ 
//here you can access it... 
} 
1

聲明SUBPOSonCreate像以前一樣:

public String SubPos=null; // or you can also declare it as static as your need 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    mAccVals = new Number3d(); 
    Bundle extras = getIntent().getExtras(); 
    SubPos = extras.getString("subposition1"); 
} 


    public void testmethod() 
    { 
     String str=SubPos; //get SubPos value 
    } 
1

有2種方式easyly這樣做的:

第一種方式:使用全局變量的類:

String SubPos; 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    mAccVals = new Number3d(); 
    Bundle extras = getIntent().getExtras(); 
    SubPos = extras.getString("subposition1"); //note that I've deleted the 'String' 
} 

2n方式:傳遞給方法th Ë變量:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    mAccVals = new Number3d(); 
    Bundle extras = getIntent().getExtras(); 
    String SubPos = extras.getString("subposition1"); 
    otherMethod(SubPos); 
} 

public void otherMethod(String s) { 
    //do stuff. 
} 

我認爲,也許你想在另一類這個變量,那麼你就可以做到這一點添加此功能(具有類字符串SUBPOS全球):

String SubPos; 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    mAccVals = new Number3d(); 
    Bundle extras = getIntent().getExtras(); 
    SubPos = extras.getString("subposition1"); //note that I've deleted the 'String' 
    } 
    public String getSubPos() { 
     return SubPos; 
    } 

這您可以在任何其他具有該實例的類中調用instanceOfTheClass.getSubPos()方法。

1

更換

Bundle extras = getIntent().getExtras(); 
String SubPos = extras.getString("subposition1"); 

String SubPos = getIntent().getStringExtra("subposition1"); 
相關問題