下面是一個 android 應(yīng)用程序的代碼片段,它生成一個 1-20 的隨機數(shù),用戶猜測這個數(shù)字,當在猜測數(shù)字后按下按鈕時,用戶寫入的數(shù)字 (val) 和應(yīng)用程序生成的數(shù)字 (rand_no)被比較。比較后,我希望顯示的文本消失,以便每次進行猜測并按下按鈕時都會生成新的輸出。每次調(diào)用函數(shù)時(按下按鈕時),我都將可見性設(shè)置為 INVISIBLE,然后在進行比較并顯示輸出后再次將可見性設(shè)置為 VISIBLE。但令我驚訝的是,該操作僅發(fā)生一次,并且在第一次函數(shù)調(diào)用后文本不再可見。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);}因此我想知道在函數(shù)結(jié)束后,控件再次傳遞給布局文件?或者它保留在 MainActivity.java 中,因為即使我們多次按下按鈕以使函數(shù)再次執(zhí)行,可見性似乎也只分配一次。
1 回答

侃侃無極
TA貢獻2051條經(jīng)驗 獲得超10個贊
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) {
}
});
添加回答
舉報
0/150
提交
取消