そこで、アプリを起動し、MainActivity の onCreate メソッドで変数の値を変更します。しかし、ボタンをクリックすると、別のアクティビティに移動し、このアクティビティで変更された変数を取得しようとすると、変数の元の値のみが取得されます。
したがって、ここでの問題は、変更された変数を最初のクラスから取得する方法がわからないことです。それ、どうやったら出来るの?
コードは次のとおりです。
主な活動:
package com.example.getandset;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
//Initialised variable
String tag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//The text that I want to show in the next class
setTag("Show this text");
}
public void setTag(String t){
tag =t;
}
public String getTag(){
return tag;
}
public void onClick_Start(View v){
//start of the next Class
startActivity(new Intent(this, CalledActivity.class));
}
}
および呼び出されたアクティビティ:
package com.example.getandset;
import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;
public class CalledActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_called);
TextView tv = (TextView)findViewById(R.id.textView);
//trying to get the changed variable
tv.setText("Got text: "+ new MainActivity().getTag());
}
}