2011-09-16 2 views
0

한 번 클릭 할 때 및 다시 클릭 할 때 listview의 배경색을 변경하는 방법 배경 색상 선택기를 사용하지 않고. 나는 각 항목을 선택할 때 배경을 변경하는 데 일했습니다.하지만 항목을 다시 클릭하면 red.how로 배경색을 변경해야합니다. 조건을 부여 할 수 있습니다 .i 내 코드를 여기에 게시 할 수 있습니다. 호야한 번 클릭하면 다시 클릭했을 때 목록보기의 배경색을 변경하는 방법 선택기를 사용하지 않고 배경색을 변경해야합니다

공용 클래스 ProvierActivity이 확장 ... 활동을 suggestions.please에 도움을 줄 {

private String text[] = { "BroadStripe-Cable (Seattle)", 
     "BroadStripe-Digital (Seattle)", "BroadStripe-Cable (Seattle)", 
     "Comcast king county south)", "BroadStripe-Cable (Seattle)", 
     "Comcast king county south", "BroadStripe-Digital (Seattle)", 
     "BroadStripe-Digital (Seattle)", "BroadStripe-Cable (Seattle)", 
     "Comcast king county south" }; 

ImageView icon; 
public static int selectedRow; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    final ListView list = (ListView) findViewById(R.id.listview_id); 

    list.setAdapter(new ArrayAdapter<String>(this, R.layout.list, 
      R.id.title, text)); 
    list.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> adapter, View view, 
       int position, long arg3) { 

      for (int i = 0; i < adapter.getChildCount(); i++) { 
       if (i == position) { 

        adapter.getChildAt(i).setBackgroundColor(Color.BLUE); 

       } else { 
        adapter.getChildAt(i).setBackgroundColor(Color.BLACK); 

       } 

      } 

     } 

    }); 
} 

}

답변

0

이 편집 된 코드를 사용하십시오.

public static int selectedRow; 

/** Called when the activity is first created. */ 

private int prePos=-1; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    final ListView list = (ListView) findViewById(R.id.listview_id); 

    list.setAdapter(new ArrayAdapter<String>(this, R.layout.list, 
      R.id.title, text)); 
    list.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> adapter, View view, 
       int position, long arg3) { 

      for (int i = 0; i < adapter.getChildCount(); i++) { 
       if (i == position) { 

        if(position!=prePos){ 
         adapter.getChildAt(i).setBackgroundColor(Color.BLUE); 

         prePos=position; 

        }else{ 
         adapter.getChildAt(i).setBackgroundColor(Color.BLACK); 
          prePos=-1; 
         } 

        }else{ 

         adapter.getChildAt(i).setBackgroundColor(Color.BLACK); 

        } 

       } 


     } 

    }); 
} 

} 

이 정보는 도움이됩니다.

+0

도움을 주셔서 감사합니다. 그게 내가 선택하고 우리가 다른 항목을 선택하면 이전 하나 검은 색이어야합니다. 내가 선택한 항목은 color.can u pls 도움을 변경해야합니다. . – preeti

+0

다시 설명 할 수 있습니까? 나는 당신의 코드가 당신의 요구 사항과 일치한다고 생각한다. –

+0

예. 이전에 코드를 게시했습니다. 올바르게 작동하고 있습니다. 색상을 변경하면 항목이 하나 선택되고 다른 항목을 선택하면 선택한 항목에만 색상이 변경되고 다른 모든 항목에는 배경색이 검정색으로 표시됩니다.하지만 소개 후에 내 요구가 작동하지 않는다는 플래그. – preeti

관련 문제