我对接下来需要做的事感到有点难过。我正在尝试创建一个应用程序,当按下按钮时,它会生成一个引用。最初,当我按下按钮时,会出现一个单词,但是当我再次尝试按下该按钮时,它不会打印出另一个单词。
package com.example.under.funfacts;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
import java.util.*;
import static com.example.under.funfacts.R.id.PressMe;
import static com.example.under.funfacts.R.id.quote;
import static com.example.under.funfacts.R.id.text2;
public class MainActivity extends AppCompatActivity {
TextView txt;
Button btn;
String[] quotes = new String[] {"texas", "jersey", "Pennsylvania", "Tennessee", "Mississippi"};
String randomQuote = quotes[(int) (Math.random()*quotes.length)];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt = (TextView) findViewById(R.id.quote);
Button btn = (Button) findViewById(R.id.PressMe);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txt.setText(randomQuote);
}
});
}
}
我知道我可能会为引号列出一个列表,但遗憾的是我不知道如何实现它。 希望我错过了一个小细节,因为我想多次按下按钮,所以我可以看到多个单词或引号。
答案 0 :(得分:0)
您的randomQuote
变量只设置一次。您应该将其声明移到onClick()
方法中。这样,每次单击按钮时都会设置它:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String randomQuote = quotes[(int) (Math.random()*quotes.length)];
txt.setText(randomQuote);
}
});
答案 1 :(得分:0)
在josmith42的答案基础上,如果你想继续在文字中添加单词,你可以检索现有的文本,而不是担心List
。像这样:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CharSequence currentText = txt.getText();
String randomQuote = quotes[(int) (Math.random()*quotes.length)];
if (currentText.length() == 0) {
txt.setText(randomQuote);
} else {
txt.setText(currentText + " " + randomQuote);
}
}
});