繁体   English   中英

如何按下按钮,移至数组的下一个位置

[英]How to press a button, move to the next position of an array

我开始用android编程,这很困难。 我正在填充一个寻求数据库对象的ArrayList。

 public ArrayList<Box> seekBoxPerLine() {
        boxes = new ArrayList<Box>();
        Cursor cursor;
        if (init == 0) {
            String sql = "SELECT * FROM Boxe WHERE line='" + numberLine+ "' ORDER BY position ASC; ";
            cursor = database.rawQuery(sql, null);
        } else {
            String sql = "SELECT * FROM Box WHERE line='" + numberLine + "' ORDER BY positio DESC; ";
            cursor = database.rawQuery(sql, null);
        }
        if (cursor.getCount() >= 0) {
            cursor.moveToFirst();
            while (!cursor.isAfterLast()) {
                Box box = new Box();

                box.setId(cursor.getLong(0));
                box.setFase_cultivo(cursor.getString(1));
                boxes.add(box);
                cursor.moveToNext();
            }
        }
        cursor.close();
        return boxes;
    }

我进行验证,然后将对象的ID传递给EditText:

  public void verifyBoxLine() {
        if (numberLine != null) {
            boxes = seekBoxPerLine();
            for (Box boxesPerLine : boxes) {
                etNumberBoxActually.setText(String.valueOf(boxesPerLine.getId()));

                break;
            }
        }
    }

现在,我的疑问是如何对按钮进行编程,以使其按下以使其与下一个arrayList ID相同的EditText递增? 我不知道有什么帮助。

我的onClick按钮:

  public void onClick(View view) {
 if (view == btNextBox) {


        }

注意:这些框按顺序放置在一行中,我可以选择从行的开头或结尾开始,因此我意识到了这些检查方法,不知道有多大帮助,但可以使其更加清晰。

为什么不使用内部计数器?

每当您从数据库查询时,都将计数器重置为0;

每当您点击按钮时,您都会增加计数器...

private int indexPos = 0;

public ArrayList<Box> seekBoxPerLine() {
    //... as above
    indexPos = 0;
}

public void onClick(View view) {
    if (view == btNextBox) {
        indexPos = indexPos + 1;
        //... do whatever you need to do
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM