App Inventor - 按字母顺序排列名称列表的最佳方法

时间:2016-11-04 09:29:13

标签: android app-inventor

我正在学习使用App Inventor构建简单的应用程序。

我遇到了这个练习项目,其中应用程序采用三个名称,并在标签下面按字母顺序排列。理想情况下,无论用户输入的方式如何,它都会使名字和姓氏的首字母大写。

我已经实现了基本功能,但我觉得我的方式很笨拙且费时。我想知道是否有人有更好的选择。更高级的功能,即自动大写功能,我很难想办法。

附件是我的编码块和app界面。非常感谢提前!

编辑:对于之前截图不完整而感到抱歉,我已更新代码块屏幕截图以显示完整的区块。

App Interface

Code Blocks

3 个答案:

答案 0 :(得分:1)

刚从saj找到的替代方法尝试构建。效果很好,特别是对于超过3个项目的列表!如果存在,只需要找出一种方法来大写姓氏。希望这可以帮助将来的任何人。

Blocks

答案 1 :(得分:1)

bubble sort

使用如图所示的冒泡排序,并在将每个使用项与大写字母进行比较时将它们全部用大写字母进行比较。排序将重新排列列表,您只需在标签或列表视图元素中打印出列表即可。我用了后者。

答案 2 :(得分:-1)

自动大写:

android:inputType="textCapSentences"

的布局集EditText

以编程方式:您必须在InputType.TYPE_CLASS_TEXT的{​​{1}}方法中加入setInputType,如下所示

EditText

用于排序(按字母顺序排列)名称列表:

mEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES)

对于区分大小写的自定义Comparator应该如下所示。

Collections.sort(list)

或者如果您使用的是Java 8:

Collections.sort(list, new Comparator<String>() {
    @Override
    public int compare(String s1, String s2) {
        return s1.compareToIgnoreCase(s2);
    }
});