簡體   English   中英

ArrayList 卡在打印一項

[英]ArrayList stuck on printing one item

我正在制作一個應用程序,它顯示從 Firebase 中提取並存儲在 ArrayList 中的消息。 該應用程序應顯示一條消息十秒鍾,然后滾動消息以顯示下一條消息。 我正在使用 textSwitcher 視圖來顯示消息。 我的問題是應用程序卡在 ArrayList 中的最后一條消息,並且不會從數組的開頭重新啟動。 先感謝您。

這是position的代碼:

public class ViewMessageActivity extends AppCompatActivity {
    private TextSwitcher txtSwitcher;
    private ImageButton btnNext,btnPrev;
    private FirebaseFirestore db = FirebaseFirestore.getInstance();
    private CollectionReference notebookRef = db.collection("Messages");
    ArrayList<String> ar = new ArrayList<String>();
    int count = ar.size();
    int position = 0;
    TextView hallName;

這是負責此操作的代碼:

if(!ar.isEmpty()) {
    txtSwitcher.setText(ar.get(0));
    count = ar.size();
    btnNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            position++;
            if (position >= count)
                position = 0;
            txtSwitcher.setText(ar.get(position));
        }
    });
    btnPrev.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            txtSwitcher.showPrevious();
            --position;
            if (position < 0)
                position = ar.size() - 1;
            txtSwitcher.setText(ar.get(position));
        }
    });

我發現了問題並修復了它。 我沒有更新 ArrayList 中的 position。 菜鳥失誤。

而不是這段代碼:

if(!ar.isEmpty()) {
    txtSwitcher.setText(ar.get(0));
    count = ar.size();

我把這個:

if(!ar.isEmpty()) {
    txtSwitcher.setText(ar.get(position));
    position++;
if (position >= count)
    position = 0;

count = ar.size();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM