我正在寻找一种从左下角横向和向上填充 GridView 的方法,而不是从左上角横向和向下填充 GridView ,但仍然能够使用 pointToPosition(x, y) 来获取正确的元素在数组中(因此左下角为 0)。
我不完全确定这是否可能,但我想它一定是,但是我想不出任何方法可以在不破坏正确查找数组索引的能力的情况下做到这一点。任何帮助将不胜感激。
这里是获取用于填充网格的字符串数组的代码:
int num = 0;
//populates a standard array from the grid in the JSONObject
for (int vertical = 0; vertical < puzzleArray.size(); vertical++) //rows
{
for (int horizontal = 0; horizontal < puzzleArray.get(0).length(); horizontal++) //columns
{
//adds each letter of each row stored in puzzleArray to puzzleInputArray
puzzleInputArray[num] = puzzleArray.get(vertical).charAt(horizontal) + "";
num++;
}
}
puzzleArray 是由 9 个字母组成的 9 个字符串,然后用上面的代码将它们分成一个单独的数组。
我用标准 ArrayAdapter 填充 GridView:
//fill GridView with the puzzle input array from the puzzle class
ArrayAdapter<String> gridAdapter = new ArrayAdapter<String>(c, R.layout.cell_layout, todaysPuzzle.puzzleInputArray);
wordsearchGrid.setAdapter(gridAdapter);
我需要能够在网格上调用与此等效的内容:
case MotionEvent.ACTION_DOWN:
downX = event.getX();
downY = event.getY();
startPosition = wordsearchGrid.pointToPosition((int)downX, (int)downY);
letterDown = (String) wordsearchGrid.getItemAtPosition(startPosition);
谢谢。
最佳答案
要解决您的问题,您只需使用更先进的技术来创建适配器。
用一行代码编写适配器固然很棒,但为了获得将数组适应 gridView 的更加自定义的体验,您必须自己编写一个 BaseAdapter。
从这里开始,事情就变得非常简单,例如,您可以将两个数组作为其成员变量,一个用于存储“真实”索引,一个用于“显示”索引。
希望我能帮助你:)!
关于java - 从左下角填充 gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30275850/