2016-11-04 3 views
-2

私はApp Inventorを使って簡単なアプリケーションを構築する方法を学んでいます。App Inventor - 名前のリストをアルファベット順に表示する最良の方法

私はこの練習プロジェクトに出くわしました。このプロジェクトでは、3つの名前を付けて、ラベルの下にアルファベット順に並べています。理想的には、ユーザーの入力方法にかかわらず、名字と姓の両方の最初の文字を作成することもできます。

私は基本的な機能を達成しましたが、自分のやり方が面倒で時間がかかると感じています。誰かがより良い選択肢を持っているかどうかを知りたい。より高度な機能、すなわち自己資本化機能は、私がそれを行う方法を考えるのが難しいです。

添付ファイルは、私のコーディングブロックとアプリケーションインターフェイスです。事前に多くの感謝!

EDIT:前回のスクリーンショットが不完全で申し訳ありませんが、コードブロックのスクリーンショットを更新してフルブロックを表示しました。自動大文字の場合

App Interface

Code Blocks

+0

[ウェブビューアを使用して、リストを並べ替える方法(!)](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

:あなたのレイアウトでは

はあなたのEditTextandroid:inputType="textCapSentences"を設定します。

OR

プログラム:

Collections.sort(list) 
:あなたが名前の(アルファベット順)のリストをソートするための

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

以下のようなEditTextsetInputType方法でInputType.TYPE_CLASS_TEXTを含める必要があります

ケースの場合敏感なカスタムコンパレータは、以下のように役立ちます。

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

関連する問題