我正在寻找一种方法来填充从左下方向上和向上的网格视图,而不是左上角和下方,但是仍然可以使用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);
感谢。
答案 0 :(得分:1)
要解决您的问题,您只需使用更多提升技术来创建适配器。
在一行代码中编写适配器非常棒,但是为了获得更加自定义的将数组调整到gridView的体验,您必须自己编写BaseAdapter。
从那里开始,它会非常简单,例如你可以有两个数组作为成员变量,一个存储&#34;真实&#34;索引,以及#34;显示&#34;索引。
希望我帮助你:)!