gpt4 book ai didi

java - Android:将 int 值从一个 Activity 传递到另一个 Activity

转载 作者:行者123 更新时间:2023-12-01 22:41:06 25 4
gpt4 key购买 nike

我正在努力弄清楚为什么我无法将 int 值从一个 Activity 传递到另一个 Activity 。该应用程序会要求您按一个按钮来生成 1-100 之间的随机数字,该数字将显示在按钮下方。还有另一个按钮将打开一个新 Activity ,仅显示滚动的随机数...但我只得到 0。

我已经研究过类似的问题,但没有结果。

这是我的 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);
}

}

在使用 Activity 时,使用 getter 从另一个类获取数据的方法是错误的吗?感谢您抽出时间。

最佳答案

您应该将您的数据作为附加到您的 Intent 中的附加信息传递。为此,您需要首先确定要使用的全局 key 。您可以在 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()

类/对象采用大驼峰式命名,只是为了避免混淆。

关于java - Android:将 int 值从一个 Activity 传递到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26108552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com