如何按下按钮,移动到阵列的下一个位置

时间:2015-12-16 12:05:29

标签: java android arrays arraylist

我开始在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) {


        }

注意:盒子按顺序排成一行,我可以选择从行的开头或结尾开始,所以我意识到检查,不知道它有多大帮助,但它会让它更清晰

1 个答案:

答案 0 :(得分:1)

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

每当您从DB查询时,您将计数器重置为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
    }
}