java - 单击按钮时生成随机整数,无需刷新 Activity

标签 java android

大家好:)我一直在这个问题上摸不着头脑,似乎找不到合适的答案,尽管我确信这是一个简单的问题。

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

我可以通过添加一个 Intent 来实现我想要的,并且本质上“刷新”(不确定措辞)主要 Activity ,但我想为按钮单击添加一个计数器,并且当 Activity 执行时它会重置。

    {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"));

最佳答案

我明白了!!!呜呜。但我无法为自己投出正确答案。

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 事件中,并删除了私有(private)和静态部分。然后哇啦!事情就像一个魅力!

关于java - 单击按钮时生成随机整数,无需刷新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40824287/

相关文章:

android - 如何在 Android Kitkat 中设置我的短信应用默认?

java - 二维游戏物理 : Hitting a platform actor won't stop

java - Morphia 保存新实体而不是更新 _id

java - JSP访问列表中对象的方法

android - 查找 Android 应用程序的 "name"

Android Studio > DDMS > 文件资源管理器没有内容

java - 需要帮助理解 Java 中的符号 "->"

java - Swing JPopupMenu : grey area overlapping

java - Android 中 Dropbox 中的内部服务器错误

android - 如果 Context 被销毁,SharedPreference 是否会被销毁?