gpt4 book ai didi

java - Android Studio : Making a random number generator app, 随机数不显示?

转载 作者:行者123 更新时间:2023-12-01 09:28:02 26 4
gpt4 key购买 nike

我有 EditViews 来提示用户输入最小值和最大值。输入的数据被传递到 Activity 函数中并生成一个随机数。该随机数被传递到另一个要显示的 Activity 。当我输入最小数字和最大数字,然后单击“生成”按钮时,我会被定向到空白屏幕。但是,我期望显示 randValue。

MainActivity.java

public class MainActivity extends AppCompatActivity {
public final static String RAND_NUM = "com.example.random.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void generateNum(View view) {
Intent intent = new Intent(this, DisplayNumActivity.class);

EditText minInput = (EditText) findViewById(R.id.min_num);
EditText maxInput = (EditText) findViewById(R.id.max_num);

int minNum = Integer.parseInt(minInput.getText().toString());
int maxNum = Integer.parseInt(maxInput.getText().toString());
Random rand = new Random();
int randNum = rand.nextInt(maxNum - minNum) + minNum;
intent.putExtra(RAND_NUM, randNum);
startActivity(intent);

}
}

DisplayNumActivity.java

public class DisplayNumActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_num);

Intent intent = getIntent();
String randValue = intent.getStringExtra(MainActivity.RAND_NUM);

TextView textView = new TextView(this);
textView.setTextSize(30);
textView.setText(randValue);

ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_num);
layout.addView(textView);

}
}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="com.example.random.MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Min number"
android:id="@+id/textView"
android:layout_marginTop="40dp"
android:layout_alignParentTop="true"
android:layout_alignLeft="@+id/textView2"
android:layout_alignStart="@+id/textView2" />

<EditText
android:id="@+id/min_num"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="min"
android:inputType="number"
android:layout_marginTop="32dp"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Max number"
android:id="@+id/textView2"
android:layout_marginTop="43dp"
android:layout_below="@+id/min_num"
android:layout_centerHorizontal="true" />

<EditText
android:id="@+id/max_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="max"
android:inputType="number"
android:minWidth="500dp"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:onClick="generateNum"
android:id="@+id/button"
android:layout_below="@+id/max_num"
android:layout_centerHorizontal="true"
android:layout_marginTop="43dp" />

最佳答案

好的,有两件事:

1) 在 DisplayNumActivity 中,更改

String randValue = Intent.getStringExtra(MainActivity.RAND_NUM);

对此:

int randValue = Intent.getIntExtra(MainActivity.RAND_NUM, 0);

这里我们从 Intent 中读取 int 值而不是字符串。在你的主要 Activity 中,你在这里保存了一个int,而不是一个String,这里的String只是键值对中的“键”。零只是默认值,以防它找不到您的整数。

2) 要显示数字,您必须首先将该 int 更改回 String,以便将其设置在 TextView 中,然后我们将其显示到您的相对布局,如下所示:

String stringRandValue = Integer.toString(randValue);
View relativeLayout = findViewById(R.id.activity_display_num);;
TextView textView = new TextView(this);
textView.setTextSize(30);
textView.setText(stringRandValue);
((RelativeLayout)relativeLayout).addView(textView);

这应该有效。

关于java - Android Studio : Making a random number generator app, 随机数不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39682367/

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