Android:将int值从一个活动传递到另一个活动
问题描述:
我在努力弄清楚为什么我无法将int值从一个活动传递到另一个活动。该应用程序会要求您按下一个按钮以产生一个从1-100开始的随机数字,该数字将显示在按钮下方。还有另一个按钮,将打开一个新的活动,只是显示随机数滚动...但我只是得到0.Android:将int值从一个活动传递到另一个活动
我已经研究过类似的问题,但无济于事。
下面是从MainActivity
我的代码public class MainActivity extends ActionBarActivity {
int n;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void ButtonRoll(View view) {
TextView textRoll = (TextView) findViewById(R.id.textview_roll);
Random rand = new Random();
n = rand.nextInt(100) + 1;
String roll = String.valueOf(n);
textRoll.setText("Random number is " + roll);
}
public void OpenStats(View view) {
Intent getStats = new Intent(this, Stats.class);
startActivity(getStats);
}
public int GetNumber(){ return n; }
}
我的继承人二等。
public class Stats extends Activity {
MainActivity statistics = new MainActivity();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.stats);
int n = statistics.GetNumber();
TextView tvStats = (TextView) findViewById(R.id.passedNumber_textview);
String number = String.valueOf(n);
tvStats.setText(number);
}
}
在使用活动时,是否使用getters错误的方式从另一个类中获取数据?谢谢你的时间。
答
您应该将您的数据作为附加信息传递给您的意图。为此,您需要首先确定要使用的全局密钥。你可以做这样的事情在你的MainActivity
public static final String SOME_KEY = "some_key";
然后修改OpenStats
方法
public void OpenStats(View view) {
Intent getStats = new Intent(this, Stats.class);
getStats.putExtra(SOME_KEY, n);
startActivity(getStats);
}
,然后在Stats.class onCreate方法
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.stats);
int n = getIntent().getIntExtra(MainActivity.SOME_KEY, -1);
TextView tvStats = (TextView) findViewById(R.id.passedNumber_textview);
String number = String.valueOf(n);
tvStats.setText(number);
}
显然,你应该确保你至少要调用ButtonRoll一次,或者你设置了n,以便不传递null int。
另外,注意,约定规定方法应该使用较低的驼峰格式。也就是说,第一个单词是完全小写的,后面的单词的第一个字母是大写。这会改变你的方法
OpenStats() -> openStats()
ButtonRoll() -> buttonRoll()
类/对象是上骆驼案件,只是为了帮助避免混淆。
看起来好像你正在调用你的'ButtonRole'方法 – 2014-09-29 20:46:09
和统计信息刚刚创建,没有通过 – Rob 2014-09-29 20:47:03
[如何将一个活动的值传递给另一个Android?](http:/ /stackoverflow.com/questions/3510649/how-to-pass-a-value-from-one-activity-to-another-in-android) – mbmc 2014-09-29 20:47:55