gpt4 book ai didi

android - onClick() 的函数在下次点击时返回数据,但不会在同一次点击时返回

转载 作者:行者123 更新时间:2023-11-29 23:56:58 26 4
gpt4 key购买 nike

我正在开发我的第一个应用程序,它是一种我正在尝试开发的游戏。我面临从包含 onclick 的函数返回所需数据的问题。下面是调用函数返回 task_tb_done 字符串的代码。

name_win_player_ch_screen.setText(player2_name);
name_lost_player_ch_screen.setText(player1_name);
String challenge2= challenge_selector(task_type);
task_tb_done.setText(player1_name+" "+challenge2);
challenge2="";

这是处理该请求的代码。在 while 条件循环中分配的挑战被返回,但不是立即返回,而是在下次调用这部分函数时返回值。我认为 OnClik 方法存在一些问题,因为在其他挑战选择中我没有使用 onClicks,它们立即给我完美的返回。

 else if(task_type.equals("Truth or Dare")){


firstplayer_screen.setVisibility(View.INVISIBLE);
secondplayer_screen.setVisibility(View.INVISIBLE);
game_screen_table.setVisibility(View.INVISIBLE);
truth_or_dare_selection_screen.setVisibility(View.VISIBLE);

//A pop up to ask Either they want a truth or dare
//upon selection will give them task to do or to tell the truth.

truth_select_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

truesize = truth.length;

int i = (int) (Math.random() * ((truesize - 0) + 1));
if(i<=truesize) {
c=1;
toast.setText("Hey" + truth[i]);
toast.show();
challenge = truth[i];
truth_or_dare_selection_screen.setVisibility(View.INVISIBLE);
}
else{
challenge_selector(task_type);
toast.setText("Please Click again");
c=0;
toast.show();

}
}
});
dare_select_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

daresize = dare.length;

int i = (int) (Math.random() * ((daresize - 0) + 1));

if(i<=truesize) {
c=1;

toast.setText("Hey" + dare[i]);
toast.show();
challenge = dare[i];
truth_or_dare_selection_screen.setVisibility(View.INVISIBLE);
}
else{
challenge_selector(task_type);
toast.setText("Please Click again");
c=0;
toast.show();
}
}
});

while (c==1) {
c=0;
truth_or_dare_selection_screen.setVisibility(View.INVISIBLE);
return challenge;
}

最佳答案

'c' 变量第一次执行时的值是多少?如果不为 1,则不会进入 while 循环,也不会返回挑战。

如果你想在用户点击其中一个按钮之前一直停留在 while 循环中,你应该试试这个:

while (c != 1) {

}
return challenge;

这样,它将无限循环,直到用户点击 (c = 1),然后循环结束,您将到达“返回挑战”。

尽管您应该考虑对此类行为使用回调,并在 Activity 的 onCreate 方法中设置 OnClickListeners。

关于android - onClick() 的函数在下次点击时返回数据,但不会在同一次点击时返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50267277/

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