gpt4 book ai didi

java - 使用按钮的 onClickListener 更改 textview 上的文本

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:06 24 4
gpt4 key购买 nike

嗨,我正在 Android 工作室“FlashCards”中开发我的第一个更大的应用程序。我希望它能够工作,所以在您单击按钮后,抽认卡的 TextView 会将其文本更改为下一个随机抽认卡,直到您看到所有这些内容,我如何才能从 onClick 方法内部执行“继续”循环之类的操作。

这是循环的代码:

    while(i < mTestDeck.size()) {

// generates random number which will represent position in deck.

int random = randomGenerator.nextInt() % mTestDeck.size();

// if random flashcard was already shown create random number again

if (mTestDeck.get(random).wasShown())
continue;

//text view that we will operate on

TextView deckTextView = (TextView) findViewById(R.id.flashcard_text_view);

// set text
deckTextView.setText(mTestDeck.get(random).getFront());

// set mWasShown to true

mTestDeck.get(random).flashcardShown();

Button myButton = (Button) findViewById(R.id.know_answer);

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

myButton = (Button) findViewById(R.id.dont_know_answer);

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

}
});
}

}

最佳答案

首先,这样,你就有了一个潜在的无限循环。如果它能发生,它就会发生! “获取随机项目并检查是否正常或重试”并不是一个好主意。

我认为最好以随机顺序保留所有项目的列表。你只需要迭代它。

类似于:

int currentPosition = 0;
List<Card> items = new ArrayList<Card>(mTestDeck).shuffle();

// Call this method once in onCreate or anywhere you initialize the UI
private void function setCurrentCard() {
Card currentItem = items.get(currentPosition);

[...] // Set all UI views here

myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (currentPosition > items.size) {
// TODO? End?
return;
}

currentPosition++;
setCurrentCard();
}
});
}

关于java - 使用按钮的 onClickListener 更改 textview 上的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46797110/

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