2015-10-04 171 views
-1

我已經通過很多文章,發現類似,但還沒有找到任何讓我解決這個問題。setText導致問題

我想創建一個隨機數生成器,我不能得到隨機數進入文本字段。這看起來很簡單,我不確定發生了什麼。 「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

這裏String和textview是同名的。 – Shriram

+0

爲您的TextView和字符串實例使用不同的名稱 – desmondtzq

+0

嘗試對Textview和resultString使用不同的變量名稱。 –

回答

0

您應該重命名您的TextView或您的字符串「resultText」 - 如果您使用兩次相同的變量名稱,它將不起作用。 問題是,您嘗試在字符串上而不是在TextView上調用setText,因爲您在onCreate方法中聲明「resultText」爲字符串。

0

這是因爲您引用局部變量resultText字符串將其設置爲textview。它不能引用你在類中聲明的textview,因爲在listener裏它引用了字符串。

更改的TextView即

resultText = (TextView)findViewById(R.id.resultText); 

喜歡的東西

resultTextTextView = (TextView)findViewById(R.id.resultText); 

不同,並用它作爲

resultTextTextView.setText(""+resultText); 

或使用類活動或片段前綴像

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

您已經聲明兩個變量具有相同的名稱:

TextView resultText 

String resultText 

在實踐中,String變量(在方法中聲明)是hidingTextView變量。要解決這個問題,請將本地字符串變量(及其用法)重命名爲

String result 
+0

謝謝,我不能相信我錯過了。 – Andrew