按下按钮时在TextView框中更改文本

时间:2012-03-27 03:00:20

标签: android android-widget

我对编程很新,我正在学习用Java开发和构建Android应用程序。

我正在尝试创建一个Dreidel游戏,在我的xml文件中,我有一个按钮,一个imageview和一个TextView(我将努力保持得分稍晚,我可以轻易地自己解决这个问题我想象的足够了。)

但目标是当我按下按钮时,随机数生成器会产生一个0-3的数字,

如果为0,我希望TextBox显示"你什么也得不到" 如果为1,我希望TextBox显示其他内容 如果是2,我希望TextBox显示其他内容 如果是3,我希望TextBox显示其他内容

这是代码。当我在Android模拟器中运行它时,它会启动,但是当我单击按钮

时没有任何反应
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");
    }       }
    });
}
}

5 个答案:

答案 0 :(得分:0)

在您的情况下使用numGen.nextInt(4)而不是numGen.nextInt()。在变量(比如x)中抓取它的值,并在每种条件下使用该值。

答案 1 :(得分: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;
 }        

答案 2 :(得分:0)

你需要在onCreate中用

之类的东西定义你的按钮
final Button spinButton = (Button) findViewById(R.id.spinbuttonIdInXML);

或者拉开onCreate外面的onClick:

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

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

答案 3 :(得分:0)

在OnCreate中定义你的按钮就像这样..

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

答案 4 :(得分: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");
    }       }
    });
}
}