我已经阅读了很多文章并发现了相似的内容,但是没有找到任何可以解决问题的文章。
我正在尝试创建一个随机数生成器,我无法获取随机数进入文本字段。这看起来很简单,我不确定发生了什么。 “setText”不断抛出错误“无法解析方法”setText(Java.lang.String)“
我随机的代码可能有点奇怪。我一直在尝试不同的方法来使其发挥作用,这是最近的尝试。
private Randomizer mRandomizer = new Randomizer();
Button rollButton;
GridLayout gridLayout;
Spinner fourspinner;
Spinner sixspinner;
Spinner eightspinner;
Spinner tenspinner;
Spinner twentyspinner;
Spinner hundredspinner;
TextView resultText;
Random randDice;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rollButton = (Button)findViewById(R.id.rollButton);
gridLayout = (GridLayout)findViewById(R.id.gridLayout);
fourspinner = (Spinner)findViewById(R.id.fourspinner);
sixspinner = (Spinner)findViewById(R.id.sixspinner);
eightspinner = (Spinner)findViewById(R.id.eightspinner);
tenspinner = (Spinner)findViewById(R.id.tenspinner);
twentyspinner = (Spinner)findViewById(R.id.twentyspinner);
hundredspinner = (Spinner)findViewById(R.id.hundredspinner);
resultText = (TextView)findViewById(R.id.resultText);
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// click the Button!
String resultText = "";
randDice = new Random();
for(int i = 0; i < 10; i++){
resultText += String.valueOf(randDice.nextInt()) + "\n";
}
resultText.setText(""+resultText);
//resultText.(diceRoll);
}
};
rollButton.setOnClickListener(listener);
}
答案 0 :(得分:0)
这是因为您正在引用局部变量resultText String以将其设置为textview。它不能引用您在类中声明的textview,因为在侦听器内部它引用了字符串。
更改textView即
resultText = (TextView)findViewById(R.id.resultText);
与
等不同的东西 resultTextTextView = (TextView)findViewById(R.id.resultText);
并将其用作
resultTextTextView.setText(""+resultText);
或使用活动类或片段前缀,如
MyActivity.this.resultText.setText(""+resultText);
答案 1 :(得分:0)
您应该重命名TextView或String“resultText” - 如果您使用相同的变量名两次,它将无法工作。 问题是,您尝试在String上调用setText而不是在TextView上调用setText,因为您在onCreate方法中将“resultText”声明为String。
答案 2 :(得分:0)
您已声明两个具有相同名称的变量:
TextView resultText
和
String resultText
实际上,String
变量(在方法中声明)是hiding TextView
变量。要解决此问题,请将本地字符串变量(及其用法)重命名为例如
String result