2014-12-17 4 views
0

안드로이드와 자바를 처음 접했습니다. 그 값으로 목록보기 항목의 위치를 ​​찾는 방법이 있는지 궁금 해서요.android ListView : 항목 값에서 항목 위치 가져 오기?

예 : "list 1108"이라는 문자열을 표시하는 항목이 내 listview에있는 경우 어떻게 "Product 1108"의 위치를 ​​얻을 수 있습니까?

나는 그것이 의미가 있기를 바랍니다.

편집 :

private void updateListView() { 
    final ListView lvCheckList = (ListView) findViewById(R.id.lvCheckList); 
    Map<String, ?> keys = checkListData.getAll(); 

    ArrayList<String> checkListStrings = new ArrayList<String>(); 
    for (Map.Entry<String, ?> entry : keys.entrySet()) { 
      if (entry.getKey().equals(currentList + entry.getValue())) { 
       checkListStrings.add((String) entry.getValue()); 
      } 
      if (entry.getKey().equals(currentList + entry.getValue() + "Checked")) { 
       //set Item to checked/unchecked 

      } 
     } 

     ArrayAdapter<String> checkListArrayAdapter = new ArrayAdapter<String>(
       this, android.R.layout.simple_list_item_checked, 
       checkListStrings); 
       lvCheckList.setAdapter(checkListArrayAdapter); 


       } 

이 코드는 된 SharedPreferences에 저장하여 항목을 가져오고있는 ListView에 표시합니다. 왜 그것이 작동하는지 나에게 묻지 마라. 단지 그렇게한다.

은 이제 선택 또는 선택 해제하려면 다음 중 하나를 목록 항목을 설정 여기에 일하려는하지만 목록보기가 아직 채워되지 않았기 때문에 그것이 가능하다고 생각하지 말아 어떤이 줄을

if (entry.getKey().equals(currentList + entry.getValue() + "Checked")) { 
       //set Item to checked/unchecked 
    } 

를 참조하십시오.

lvCheckList.setItemChecked (위치 :

는 그래서 ArrayAdapter와에 나는이 코드를 사용할 수 있도록 목록보기의 항목을 정렬하고 임 찾고 어떤 값 항목을 찾아 해당 항목의 위치를 ​​얻을 필요 , 가치);

희망적으로 말이야.

+0

가 어떻게 값을 받고 구현할 목록보기 onItemClickListener()

Toast.makeText(getApplicationContext, "The position of the clicked item is " + position, Toast.LENGTH_SHORT).show(); 

을 할 수 있습니까? – tyczj

+0

값은 SharedPreferences에서로드됩니다. –

+0

왜 필요한가요? (나는 당신이 어디에 표시 값을 알고 있지만 어떤 위치에 동시에 가질 수 있는지 알 수 없다.) – njzk2

답변

0

BaseAdapter 사용자는 ArrayList과 같은 항목이 있어야합니다. 방법을 사용할 수 있습니다.

ArrayAdapter adapter = new YourCustomArrayAdapter(); 
for(int i = 0; i < adapter.getCount(); i++) 
    System.out.println(String.format("String \"%s\" has an index of %d", adapter.getItem(i), i); 

이 사용하지 않습니다

당신이 ArrayAdapter을 사용하고 당신이 여기 getPosition(obj);

를 사용할 수있는 경우 (당신이 다른 것을 사용하는 경우 알려 주시기)는 ArrayAdapter 대한 반복의 예입니다 메소드 getPosition()은 루프가 우리에게 아이템을 가져다주는 위치를 제공하기 때문에 발생합니다.

+0

목록 뷰의 각 항목을 통과하여 값/텍스트를 확인하고 항목의 위치를 ​​반환하는 루프를 만들지 못했습니까? 그게 어떻게 생겼어? –

+0

@SaiBarker, 제 편집을보세요. – MeetTitan

+0

어떻게 getPosition (obj)에서 비교를 제어합니까? 나는 Coin 오브젝트의 배열을 가지고 있으며 Coin의 개인 문자열의 속성을 비교하려고합니다. –

0

당신은 당신이

+0

onItemClickListener()에있을 수 없습니다. ArrayAdapter에 있어야합니다. –

+0

당신이 무엇을 의미하는지 명확하지 않습니다. 코드를 제공 할 수 있습니까? –

+0

필자가 필요로하는 것은 각각의 listview 항목에서 값을 확인하고 항목의 위치를 ​​반환하는 for 루프입니다. –

관련 문제