2013-03-19 2 views
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"의 이름과 값을 가져옵니다.
도움이 될 것입니다.

+1

XML 파서를 사용해보십시오 – BobTheBuilder

+0

다른 simplexmlframework를 사용하여 문제를 해결할 수 있습니다 –

+1

문자열 배열을 사용하는 경우 변화가 없다는 것을 알고 있다면 항목 이름과 텍스트에 대해 하나씩 두 개의 배열을 사용하는 것이 좋습니다. 검색 할 수 있습니다. 일치가 발생하면 색인을 사용하여 해당 이름을 가져올 수 있습니다. – Akash

답변

0

좋아, 매우 아니다 , java.util.Arrays은 UI를 생각 도움이 될 여러 옵션을 aceepting 방법을 binarysearch가있다 우아하지만 적어도 지금은 효과가 있습니다. akashasia 말한 것처럼 나는 다음과 같이 검색 할 텍스트의 항목 이름에 대한 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..   
       } 
      } 

추신 아마도 이것이 최선의 방법은 아닙니다. 그래서 누군가가 생각이나 개선을 가지고 있다면, 나는 그것을 정말로 고맙게 생각합니다.

0

내 조언은 akashasia 덕분에 내가 해결책을 찾기 위해 관리 있도록

Arraysapi

관련 문제