按钮单击时生成随机整数而不刷新活动

时间:2016-11-26 23:37:10

标签: java android

嘿大家:)我一直在摸不着头脑,似乎无法找到合适的答案,即使我确定这是一个简单的问题。

我有一个程序,当按下另一个按钮时,它会在一组按钮上生成随机字母文本。 当我打开应用程序时,它加载正常,第一次按下按钮它会正确生成,但之后我似乎无法重新生成随机字母。

我可以通过添加Intent来实现我想要的,并且基本上是"刷新" (不确定措辞)主要活动,但我想为按钮点击添加一个计数器,并在活动时重置。

    {Intent intent = new Intent(MainActivity.this,     MainActivity.class);
    startActivity(intent);
        finish();
        overridePendingTransition(0, 0);

我似乎无法想到如何做到这一点。看来我每次点击按钮时都需要重新运行java。有什么建议吗?

这是一些代码,我使用的是按钮而不是textview,因为我a)想要设置一个简单的背景b)可以让它们稍后点击。非常感谢提前!

public class MainActivity extends Activity 
{

    Button spin;
    Button reel1,reel2,reel3,reel4;
    private String rnd,rnd2,rnd3,rnd4;

    int count1=50;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        addListenerOnButton();}


    private static String rndm[]  = {"A","B","C","D"};
    {rnd = rndm[(int) (Math.random() * rndm.length)];}
    private static String rndm2[]  = {"A","B","C","D"};
    {rnd2 = rndm2[(int) (Math.random() * rndm2.length)];}
    private static String rndm3[]  = {"A","B","C","D"};
    {rnd3 = rndm3[(int) (Math.random() * rndm3.length)];}
    private static String rndm4[]  = {"A","B","C","D"};
    {rnd4 = rndm4[(int) (Math.random() * rndm4.length)];}

    public void perform_action(View v){}

    public void addListenerOnButton() {


        spin = (Button) findViewById(R.id.spin);
        spin.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    {Toast.makeText(getApplicationContext(),"button pressed",     Toast.LENGTH_SHORT).show();}


                {Button tv = (Button)     findViewById(R.id.reel1);
                    tv.setText(String.valueOf(rnd));
                    tv.setTextColor(Color.parseColor("#000000"));}

                {Button tv = (Button)     findViewById(R.id.reel2);
                    tv.setText(String.valueOf(rnd2));
                    tv.setTextColor(Color.parseColor("#000000"));}

                {Button tv = (Button)     findViewById(R.id.reel3);
                    tv.setText(String.valueOf(rnd3));
                    tv.setTextColor(Color.parseColor("#000000"));}

                {Button tv = (Button)     findViewById(R.id.reel4);
                    tv.setText(String.valueOf(rnd4));
                    tv.setTextColor(Color.parseColor("#000000"));

1 个答案:

答案 0 :(得分:1)

我想通了! Whoot。但是,我不能为自己的正确答案投票。

public class MainActivity extends Activity 
{

    Button spin;
    Button reel1,reel2,reel3,reel4;
    private String rnd,rnd2,rnd3,rnd4;

    int count1=50;

    @Override
   protected void onCreate(Bundle savedInstanceState)
    {super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        addListenerOnButton();}

    public void perform_action(View v){}

    public void addListenerOnButton() {


        spin = (Button) findViewById(R.id.spin);
        spin.setOnClickListener(new OnClickListener() {

                @Override
            public void onClick(View v) {



                String rndm[]  = {"A","B","C","D"};
                {rnd = rndm[(int) (Math.random() *     rndm.length)];}
                String rndm2[]  = {"A","B","C","D"};
                {rnd2 = rndm2[(int) (Math.random() *     rndm2.length)];}
                String rndm3[]  = {"A","B","C","D"};
                {rnd3 = rndm3[(int) (Math.random() *     rndm3.length)];}
                String rndm4[]  = {"A","B","C","D"};
                {rnd4 = rndm4[(int) (Math.random() *     rndm4.length)];}


                    {Toast.makeText(getApplicationContext(),"button pressed",     Toast.LENGTH_SHORT).show();}


                {Button tv = (Button)     findViewById(R.id.reel1);
                    tv.setText(String.valueOf(rnd));
                    tv.setTextColor(Color.parseColor("#000000"));}

                {Button tv = (Button)     findViewById(R.id.reel2);
                    tv.setText(String.valueOf(rnd2));
                    tv.setTextColor(Color.parseColor("#000000"));}

                {Button tv = (Button)     findViewById(R.id.reel3);
                    tv.setText(String.valueOf(rnd3));
                    tv.setTextColor(Color.parseColor("#000000"));}

                {Button tv = (Button)     findViewById(R.id.reel4);
                    tv.setText(String.valueOf(rnd4));
                    tv.setTextColor(Color.parseColor("#000000"));

我将随机字符串移动到我的Onclick事件中并删除了私有和静态部分。然后鲸鱼!事情就像一个魅力!