2012-03-27 94 views
1

我對編程相當陌生,並且正在學習使用Java開發和構建Android應用程序。在按下按鈕時在TextView Box中更改文本

我想創建一個Dreidel遊戲,在我的xml文件中,我有一個按鈕,一個ImageView和一個TextView(我將努力保持稍後的分數,我可以自己弄清楚這一點我很容易想象)。

但目標是,當我按下按鈕,隨機數發生器產生0-3的數字,

如果爲0,我想文本框,顯示「你什麼也得不到」 如果爲1,我希望文本框顯示其他內容 如果是2,我希望文本框顯示其他內容 如果是3,我希望文本框顯示其他內容

以下是代碼。當我在Android模擬器中運行它,它啓動,但是當我在你的病情點擊,而不是numGen.nextInt()按鈕

package com.secondtry; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import java.util.Random; 

public class MainActivity extends Activity { 
/** Called when the activity is first created. */ 
Button spinButton; 
TextView display; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    display = (TextView) findViewById(R.id.widget34); 
    spinButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Random numGen = new Random(); 
      numGen.nextInt(4); 
     if (numGen.nextInt() == 0) 
     { 
     display.setText("You get nothing"); 
     } 
     else if (numGen.nextInt() == 1) 
     { 
     display.setText("You get half!"); 
     } 
     else if (numGen.nextInt() == 2) 
     { 
     display.setText("You get it all"); 
     } 
     else if (numGen.nextInt() == 3) 
     { 
     display.setText("Chip in a coin"); 
    }  } 
    }); 
} 
} 
+0

標記爲接受或投票了其ONR你認爲對你益處 – vipin 2012-04-03 04:50:47

回答

0

使用numGen.nextInt(4)沒有任何反應。在變量(比如x)內抓取它的值並在每個條件中使用該值。

0

你可以試試這個:

int ran = numGen.nextInt(4); 
switch (ran){ 
    case 0: 
     display.setText("You get nothing"); 
     break; 
    case 1: 
     display.setText("You get half!"); 
     break; 
    case 2: 
     display.setText("You get it all"); 
     break; 
    case 3: 
     display.setText("Chip in a coin"); 
     break; 
}   
0

你需要無論是在的onCreate的東西定義按鈕像

final Button spinButton = (Button) findViewById(R.id.spinbuttonIdInXML); 

或拉動的onClick中的onCreate之外:

@Override 
public void onCreate(Bundle savedInstanceState) { 
... 
} 

@Override 
public void onClick(View v) { 
... 
} 
+0

沒有這兩種答案的爲你工作的答案? – Gadgeteer 2012-03-27 11:41:52

0

在OnCreate中定義你的按鈕像這樣..

spinButton = (Button)findViewById(R.id.urbuttonid); 
0

更新試試這個

public class MainActivity extends Activity { 
/** Called when the activity is first created. */ 
Button spinButton; 
TextView display; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    spinButton = (Button)findViewById(R.id.ButtonId); 
    display = (TextView) findViewById(R.id.widget34); 
    spinButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Random numGen = new Random(); 
      int rNumber = numGen.nextInt(4); 
     if (rNumber == 0) 
     { 
     display.setText("You get nothing"); 
     } 
     else if (rNumber == 1) 
     { 
     display.setText("You get half!"); 
     } 
     else if (rNumber == 2) 
     { 
     display.setText("You get it all"); 
     } 
     else if (rNumber == 3) 
     { 
     display.setText("Chip in a coin"); 
    }  } 
    }); 
} 
} 
+0

好的謝謝你們的答案。 – user1294476 2012-04-03 04:17:25

相關問題