0

私はAndroidプログラミングが初めてです。
さて、次のような文字列配列があります。

<string-array name="mStrArray">
    <item name="item1a">text to be searched no1</item>
    <item name="item1b">text to be searched no2</item>
    <item name="item2a">text to be searched no3</item>
    <item name="item2b">text to be searched no4</item>
</string-array>

このように配列を検索し、結果をリスト アダプターに返します。

String[] names = getResources().getStringArray(R.array.mStrArray);
        for (String s : names) {
            int i = s.indexOf(searchKeyword);
            if (i >= 0) {
               //add results to listview adapter
               countryList.add(new Country(s, ""));
            }
        }

私の問題は、結果が見つかった配列内のアイテムの名前を取得する方法が見つからないことです。
したがって、この例では。no3 を検索すると、アイテム「item2a」の名前と値が得られます。
どんな助けでも大歓迎です。

4

2 に答える 2

0

私のアドバイスは、java.util.Arraysには、複数のオプションを受け入れるbinarysearchメソッドがあり、UIが考えるのに役立ちます。

アレイサピ

于 2013-03-19T10:29:31.387 に答える
0

わかりました。アカ​​シャシアのおかげで解決策を見つけることができました。あまりエレガントではありませんが、少なくとも今のところは機能します。
アカシャシア
が言ったように、アイテム名用に1つ、検索するテキスト用に1つ、次のように2つの配列を作成しました。

<string-array name="mStrArray">
    <item>text to be searched no1</item>
    <item>text to be searched no2</item>
    <item>text to be searched no3</item>
    <item>text to be searched no4</item>
</string-array>

<string-array name="mStrArrayValues">
    <item>item1a</item>
    <item>item1b</item>
    <item>item2a</item>
    <item>item2b</item>
</string-array>

そして、コードを次のように変更しました。

String[] arrB = getResources().getStringArray(R.array.mStrArray);
    for (String s : arrB) {
        int i = s.indexOf(searchKeyword);
        if (i >= 0) {
             int position = -1;
             for(int j = 0; j < arrB.length; j++) {
                if(arrB[j] == s) {
                    position = j;
                    break;
                }
        }

        ..
        String[] arrBV = getResources().getStringArray(R.array.mStrArrayValues);

        //finally I got the name of the value :-D
        String mySc = arrBV[position];
        //some code..           
                }
            }

PSこれはおそらくこれを行うための最良の方法ではありません. ですから、誰かに考えや改善があれば、本当に感謝しています。

于 2013-03-19T11:55:51.217 に答える