java - 从左下角填充 gridview

标签 java android arrays gridview

我正在寻找一种从左下角横向和向上填充 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/

相关文章:

php - 使用 JSON 将 jQuery 对象数组传递给 PHP

javascript - 检查数组中的第一项是否为空值

c - 数组到指针的转换是否消除了间接运算符的评估?

Java Scanner - 当项目总数未知时输入空格分隔的 double

java - 安卓动画菜单背景

android: 为 mqtt 发布的消息设置 qos

java - 在 Android 中登录 Twitter

java - 如何向已排序的链表添加元素?

java - 获取 Java 进程分配的总内存(没有分析器)?

android - 如何将内部存储的图像添加到 Intent 中?