2014-05-15 5 views
-1

해결할 수없는 문제가 있습니다.ImageView 배경을 ListView 행으로 변경하십시오.

ListView에서 행 내부에있는 ImageView 배경을 변경하고 싶습니다. 이 행은 두 개의 TextView와 ImageView가있는 사용자 정의보기입니다.

나는 ListView id, 편집하고 싶은 ImageView와 ImageView id가있는 행의 번호를 가지고 있습니다.

오른쪽 ImageView에 액세스 할 수있는 방법이 있습니까?

모든 답변 주셔서 감사합니다.

UPDATE

더 나은 설명 : 나는 장치의 목록을 가지고있다. 배열에서 값을 가져 오는 어댑터에서로드됩니다. 목록을 만든 후에 장치 주소가 포함 된 배열을 보내는 새 활동을 시작합니다. 다른 활동이 배열을 수신하고 범위 내의 장치 (블루투스)를 검색하여 해당 장치의 목록을 가져옵니다. 그런 다음 두 배열을 마주보고 범위에있는 장치가 있으면 해당 장치와 관련된 ListView의 이미지를 변경합니다. 배열의 인덱스는 ListView의 행 번호입니다.

활동에서 다른 활동으로 보내는 배열이 의도를 통해 만들어 졌기 때문에 코드를 게시 할 필요가 없다고 생각합니다. 디버깅 나는 배열을 가지고있다.

그 목록의 행에있는 이미지에 액세스하면됩니다.

+1

클래스 코드와 어댑터가 도움이 될 것입니다. –

답변

0

해결책을 찾았습니다.

// We have the listview, list of online devices and the list of our devices! 
     // Init ListView 
     ListView device_list = (ListView) findViewById(R.id.deviceListView); 

     // Loop for all the online devices found 
     for (int j = 0; j < mLeDevices.size(); j++){ 

      // Get the online device address 
      BluetoothDevice device = mLeDevices.get(j); 
      String deviceAddress = mLeDevices.get(j).getAddress(); 

      // Loop for all the devices in the ListView 
      for (int i = 0; i < device_address.size(); i++) { 

       // Compare devices address 
       if (device_address.get(i).compareTo(deviceAddress) == 0) { 
        int visiblePosition = device_list.getFirstVisiblePosition(); 
        View v = device_list.getChildAt(i - visiblePosition); 
        ImageView state = (ImageView) v.findViewById(R.id.item_state); 
        state.setImageResource(R.drawable.led_on); 
       } 
      } 
     } 

목록은 더 이상 5 이상의 요소, 그래서 아무 목록 스크롤 문제와 인덱스를 잃고있을 것이다 : 누군가가 언젠가는 내 문제가있는 것인지

나는 여기에 코드를 게시 할 수 있습니다. 나는 실제로 질문하고 싶다. ListView의 위치가 0에서 시작한다고 가정하는 것이 옳은가요? 또는 첫 번째 요소 인덱스가 1입니까? 당신은 이미지보기의 위치를 ​​알고있는 경우

0

내가 바로 다음 질문을 이해한다면 당신은 당신이 당신의 getView 방법

imageView.setBackground(R.drawable.normalBackground); 
if(position==yourRequiredPosition){ 
    imageView.setBackground(R.drawable.newBackground); 
} 

이런 식으로 이런 식으로 뭔가를 시도 할 수 있습니다 다음과 같은 생각

을 사용할 수 있습니다 각 행의 imageView에 대해 항상 normalBackground를 설정하지만 yourRequiredposition 행의 경우 newBackground가 설정됩니다. "yourRequiredPosition"을 알아낼 수있는 방법이 있어야합니다.

관련 문제