我会尝试并尽可能具体。这是我的第一篇帖子/问题。
我正在尝试在Main活动上创建一个生成随机数的按钮,并将结果发送到与同一活动上的按钮相邻的Textview。我唯一想要改变的是TextView的内容。
这是我的Java /主要活动代码:
package com.example.dannykennedyjr.diceroller;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void d4Results(View view) {
TextView tv1 = (TextView) findViewById(R.id.d4TextView);
final Random random = new Random();
int d4Roll = random.nextInt(4)+1;
tv1.setText(d4Roll);
}
}
这当然不起作用,我开始工作的任何东西都会打开一个新的TextView并清除当前的布局。
我的XML:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:background="@android:color/black"
android:onClick="d4Results"
android:text="@string/roll_d4"
android:textAlignment="center"
android:textColor="@android:color/holo_red_dark"
android:textSize="24sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:ems="10"
android:hint="@string/roll_result"
android:inputType="textPersonName"
android:textAlignment="center"
android:textSize="24sp"
app:layout_constraintBaseline_toBaselineOf="@+id/button"
app:layout_constraintHorizontal_bias="0.508"
app:layout_constraintLeft_toRightOf="@+id/button"
app:layout_constraintRight_toRightOf="parent" />
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
我最近建立了一个Android猜答案游戏.... 我在这里如何在TextView中放置随机数。
int random1 = rand.nextInt(100) + 1; //generate random numbers from 1-100
n1.setText(Integer.toString(random1)); //n1 is a TextView
希望这会对你有所帮助。
答案 2 :(得分:1)
您正在尝试将整数设置为字符串。你需要先转换它。 根据你的例子:
public void d4Results(View view) {
TextView tv1 = (TextView) findViewById(R.id.d4TextView);
final Random random = new Random();
int d4Roll = random.nextInt(4)+1;
tv1.setText(Integer.ToString(d4Roll));
}