[英]How to change the value of a Textview using buttons to iterate through an ArrayList?
[英]Iterate through a loop to print arraylist with 1sec delay in a textview Android Studio
我正在嘗試同時打印 ArrayList 的元素,但在同一個 TextView 中有延遲,無論我嘗試什么,執行時都會有延遲,但唯一打印的元素是數組的最后一個。 只是為了擴展上下文,在按鈕的 onClick 上執行“啟動”方法,然后將隨機數添加到 ArrayList 並且元素打印在 ZE62B85E9C91FF5C83D5CC8D8EB9F118我正在嘗試實現),每次執行該方法時,它都會向 ArrayList 添加一個額外的元素並打印它。
public class MainActivity extends AppCompatActivity {
private EditText et1;
private TextView tv2;
private ArrayList<String> numbers=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1=findViewById(R.id.et1);
tv2=findViewById(R.id.tv2);
}
public void iniciate(View view){
numbers.add(String.valueOf ((int) (Math.random() * 10)+1));
for (int i = 0; i < numbers.size(); i++){
tv2.setText(numbers.get(i));
tv2.postDelayed(new Runnable() {
@Override
public void run() {
tv2.setText("");
}
},2000);
}
}
}
通過閱讀代碼,我可以看到數組中只有一個元素,因此您的 function 只打印一個元素是有意義的。 這是因為您只向數組添加一次,一個隨機數乘以 10 加 1,然后轉換為 String。
numbers.add(String.valueOf ((int) (Math.random() * 10)+1));
我使用在線 java 編譯器進行了檢查。 測試在這里。
話雖如此,我的猜測是您正在使用該代碼動態地將元素添加到數組中(也許是使用事件?)。 如果是這樣,請更新您的問題並添加,因為實際上,您似乎只需要在numbers
的 add() 方法周圍添加一個小循環,例如:
int i = 0;
while(i < 10) {
numbers.add(String.valueOf((int)(Math.random() * 10)+1));
i++;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.