gpt4 book ai didi

java - android studio中从布局文件到MainActivity.java的控制流

转载 作者:行者123 更新时间:2023-12-02 09:39:11 25 4
gpt4 key购买 nike

下面是一个 Android 应用程序的代码 fragment ,生成 1-20 形式的随机数,用户猜测数字,当猜测数字后按下按钮时,用户写入的数字 (val) 并由应用程序生成(rand_no) 进行比较。

比较后,我希望显示的文本消失,以便每次猜测并按下按钮时都会生成新的输出。

每次调用该函数(按下按钮时),我都会将可见性设置为“不可见”,然后在进行比较并显示输出后再次将可见性设置为“可见”。但令我惊讶的是,该操作仅发生一次,并且在第一次函数调用后文本不再可见。

public class MainActivity extends AppCompatActivity {
Random random=new Random();
int rand_no=random.nextInt(20)+1;
public void function(View v)
{
EditText e1=(EditText)findViewById(R.id.editText); //for text input by
//the user

TextView e2=(TextView) findViewById(R.id.textOutput); //for output text

int val=Integer.parseInt(e1.getText().toString());

e2.setVisibility(View.INVISIBLE); //setting output to INVISIBLE
if(rand_no<val)
{
e2.setText("Go Lower!");
}

if(rand_no>val)
{
e2.setText("Go Higher!");
}

if(rand_no==val)
{
e2.setText("You guessed right!");
}
e2.setVisibility(View.VISIBLE); //setting output to VISIBLE

/* Fading away the output*/
e2.animate().setStartDelay(2000);
e2.animate().alpha(0).setDuration(1000);
}

因此我想知道函数结束后,控制权再次传递给布局文件?或者它保留在 MainActivity.java 中,因为即使我们多次按下按钮以使该函数再次执行,可见性似乎也只分配一次。

最佳答案

e2.animate().alpha(0).setDuration(1000);

您正在使其褪色,因此您需要使其再次可见。

用下面的代码替换引用的行

    e2.animate().alpha(0).setDuration(1000)
.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {

}

@Override
public void onAnimationEnd(Animator animation) {
e2.animate().alpha(1).setDuration(500);
}

@Override
public void onAnimationCancel(Animator animation) {

}

@Override
public void onAnimationRepeat(Animator animation) {

}
});

关于java - android studio中从布局文件到MainActivity.java的控制流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57238285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com