2016-11-04 145 views
-2

我正在學習使用App Inventor構建簡單的應用程序。App Inventor - 按字母順序排列名稱的最佳方式

我遇到了這個練習項目,在這個練習項目中,應用程序需要三個名字,並在標籤中將它們字母化。理想情況下,無論用戶輸入如何,它都會創建首字母和姓氏首字母的首字母。

我已經實現了基本功能,但是我覺得我的方式非常尷尬和耗時。我想知道是否有人有更好的選擇。更高級的功能,即自動資本化功能,我很難想到一種方法來做到這一點。

附加的是我的編碼塊和應用程序界面。提前謝謝了!

編輯:抱歉前面的截圖不完整,我更新了代碼塊截圖以顯示完整的塊。

App Interface

Code Blocks

+0

[如何排序使用Web查看列表(!)(https://puravidaapps.com/snippets.php#2sort)順便說一下。不要猶豫[在App Inventor論壇中搜索](https://groups.google.com/forum/#!searchin/mitappinventortest/sort%7Csort:relevance)來尋找其他排序解決方案 – Taifun

+0

@Taifun謝謝!因此,可以安全地說,如果不使用webviewer,而只使用App Inventor中的比較文本函數,它必須像我的屏幕截圖中顯示的那樣複雜? (我已將代碼塊屏幕更新爲正確的文件,以便它現在顯示完整的圖片)。 – cs2091

+0

不,你看起來並不像你遵循我的建議*在論壇中做一個搜索*,否則你會找到解決方案,它使用列表... – Taifun

回答

-1

對於自動大寫:

在您的佈局在EditText設置android:inputType="textCapSentences"

OR

編程:你必須包括InputType.TYPE_CLASS_TEXTEditText像下面

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

setInputType方法對於排序名稱(按字母順序排列)名單:

Collections.sort(list) 

適用案例敏感的自定義比較器應該像下面那樣幫助。

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

或者,如果你使用的是Java 8:

list.sort(String::compareToIgnoreCase); 
+0

這是如何適用於**應用程序發明者**?在問題中沒有Java標籤... – Selvin

+0

哦對不起...沒有看到:) –

+0

雖然感謝您的努力!我確信,當我超越使用App Inventor來編寫代碼時,您的答案將會有所幫助。 – cs2091

1

從一開始就試圖用建立的替代方法,我發現通過saj。非常棒,特別是對於比3件物品長得多的清單!只需要找出一種方法來將姓氏大寫,如果存在的話。希望這可以幫助任何人在未來。

Blocks