Java 造成问题的原因

Java 造成问题的原因,java,android,methods,settext,Java,Android,Methods,Settext,我浏览了许多文章,发现了类似的内容,但没有找到任何可以解决此问题的内容 我正在尝试创建一个随机数生成器,但无法将随机数输入文本字段。这看起来很简单,我不知道发生了什么。“setText”不断抛出错误“无法解析方法”setText(Java.lang.String) 我随机中的代码可能有点奇怪。我一直在尝试不同的方法来让它工作,这是最近的一次尝试 private Randomizer mRandomizer = new Randomizer(); Button rollButton; GridL

我浏览了许多文章,发现了类似的内容,但没有找到任何可以解决此问题的内容

我正在尝试创建一个随机数生成器,但无法将随机数输入文本字段。这看起来很简单,我不知道发生了什么。“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);
}
private Randomizer mRandomizer=new Randomizer();
按钮滚动按钮;
网格布局;
旋转器四旋转器;
旋转器六旋转器;
纺纱机;
纺纱机;
纺纱机二十纺纱机;
纺纱机;
text查看结果text;
随机随机骰子;
@凌驾
创建时受保护的void(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=(微调器)findViewById(R.id.eightspinner);
tenspinner=(微调器)findViewById(R.id.tenspinner);
twentyspinner=(Spinner)findViewById(R.id.twentyspinner);
hundredspinner=(微调器)findViewById(R.id.hundredspinner);
resultText=(TextView)findViewById(R.id.resultText);
View.OnClickListener=newview.OnClickListener(){
@凌驾
公共void onClick(视图v){
//点击按钮!
字符串resultText=“”;
randDice=新随机数();
对于(int i=0;i<10;i++){
resultText+=String.valueOf(randDice.nextInt())+“\n”;
}
resultText.setText(“+resultText”);
//结果正文(骰子卷);
}
};
rollButton.setOnClickListener(listener);
}

这是因为您正在引用局部变量resultText String以将其设置为textview。它不能引用您在类中声明的textview,因为在侦听器中它引用的是字符串

更改文本视图,即

 resultText = (TextView)findViewById(R.id.resultText);
做一些不同的事情,比如

 resultTextTextView = (TextView)findViewById(R.id.resultText);
并将其用作

resultTextTextView.setText(""+resultText);
或者使用活动类或片段前缀,如

MyActivity.this.resultText.setText(""+resultText);

您应该将TextView或字符串重命名为“resultText”-如果两次使用相同的变量名,则无法使用。
问题是,您试图在字符串上而不是在TextView上调用setText,因为您在onCreate方法中将“resultText”声明为字符串

您已经声明了两个同名变量:

TextView resultText

实际上,
String
变量(在方法中声明)是
TextView
变量。要解决此问题,请将本地字符串变量(及其用法)重命名为

String result

这里的String和textview同名。请为您的textview和String实例使用不同的名称尝试为textview和resultString使用不同的变量名。谢谢,我不敢相信我错过了。谢谢,我不敢相信我错过了。
String result