我有一个按钮和一些字符串。
当我单击按钮时,如何将字符串随机更改为另一个字符串? 我不确定我应该在这里复制哪部分代码...
按钮:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_example1"
android:layout_centerHorizontal="true"
android:background="@drawable/button_newfact"
android:minHeight="38dip"
android:minWidth="74dp"
android:onClick="OnButtonClickChangeTextOfTextView" />
这是我使用YouTube教程制作的MainActivity.java中的内容。但它只会更改为新文本,而不会更改为其他字符串。而且它不是随机的。
public void OnButtonClickChangeTextOfTextView(View view)
{
TextView textView = (TextView)findViewById(R.id.txt_example1);
textView.setText("");
}
我希望你能帮助我。祝大家第三次来临。 :)
答案 0 :(得分:2)
strings.xml
中有5个字符串。他们每个人都有一个id
。您应该创建这些ID的数组(例如:string1
,string2
等),如下所示:
private int[] stringIds = {R.string.string1, R.string.string2, R.string.string3, R.string.string4, R.string.string5};
然后使用以下代码:
private Random rand = new Random();
private int[] stringIds = {R.string.string1, R.string.string2, R.string.string3, R.string.string4, R.string.string5};
public void OnButtonClickChangeTextOfTextView(View view)
{
TextView textView = (TextView)findViewById(R.id.txt_example1);
int randomNumber = rand.nextInt(5);
textView.setText(getResources().getString(stringIds[randomNumber]));
}
答案 1 :(得分:1)
假设您在xml中定义了一个按钮,如下所示:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="randomNumber" />
如果在这种情况下你有一个在xml文件中定义的字符串,你会做一个参考 以这种方式(在这个例子中,他们称之为R.string.name1等......)
private int[] ids = {R.string.name1 , R.string.name2 , R.string.name3};
public void randomNumber(View view){
//Now let's say you want a random number between 1 and 10.
int number = new Random().nextInt(3);
String randomString = getResource().getString(ids[number]);
//Then you set the text, let's say to a textView
textView.setText(randomString);
}