2012-09-17 7 views
1

목록보기에서 선택한 항목의 색상을 설정하고 싶습니다. 목록보기 항목과 색상을 설정했습니다.선택한 목록의 색상을 채우는 방법

{ 
    setListAdapter(new ArrayAdapter<String>(getActivity(), 
R.layout.simple_list_item_checkable_1, android.R.id.text1,Data.PERSON)); 

    ListView listView = getListView(); 
    listView.setTextFilterEnabled(true); 

    listView.setOnItemLongClickListener(new OnItemLongClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 

    int childCount = parent.getChildCount(); 
    for (int i = 0; i < childCount; i++) { 
    View listItem = parent.getChildAt(i); 

    if (listItem != null) 
    parent.setBackgroundColor(0x00000000); 
    view.setBackgroundColor(Color.RED);  
    } 
     });  
}                       
+1

무엇이 오류입니까? 코드의 효과는 무엇입니까? –

+0

당신은 무슨 일이 일어날 지 말하지 않습니다. view.setBackgroundColor (Color.RED); 이것이 listItem.setBackgroundColor인가? – Simon

+0

당신은 할 수 있습니다 [여기를 클릭하십시오] (http://samir-mangroliya.blogspot.in/p/android-customized-listview.html) –

답변

0

은 다음과 같이 수행

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true"> 
     <shape > 
     <solid android:color="#929292" /> 
     </shape> 
    </item> 



    <item> 
    <shape > 
     <solid android:color="#FFFFFF" /> 
    </shape> 
    </item> 

</selector> 

해당 부동산 사용 android:state_pressed="true"을 누르면 선택한 항목을 눌렀을 때 색상이 표시됩니다. 최소 API 레벨 11를 들어

+0

이 코드는 성공적으로 실행되었습니다. 또한 긴 클릭으로 클릭을 구현하고 싶습니다. 동시)? – Prashant

+0

두 이벤트를 모두 코드에 구현하려면 긴 클릭을 추가하십시오. 그러나 어떻게 될 것인가, 두 가지 사건은 동시에 수행되지 않는다. 그러면 국가가 같은 시간에 어떻게 구원 받습니까? –

+0

답변이 게시물에 유용하다면 투표로 올바른 답변을 만드십시오. 그러면 사람들에게만 도움이 될 것이며 누가 관련 문제를 찾을 것입니다. –

0

당신은 사용할 수 있습니다

리스트 뷰를 포함하는 XML에서 속성 아래에 선언합니다.

android:listSelector="#AF5c12" // any color code to set color to selected item from list. 
0

사용 listSelector 속성은 선택한 항목의 색상 설정 :

<ListView android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:divider="@null" 
    android:dividerHeight="0dip" 
    android:listSelector="@drawable/list_selector" /> 
0

당신은 XML에서 선택한 항목의 색상을 설정할 수 있습니다

<ListView 
     android:listSelector="@android:color/holo_red_dark" 
    </ListView 
0

:/진정한 = state_activated 거짓과 목록 항목에 대한 배경으로 설정 : 는 속성 안드로이드와 선택 파일을 만듭니다. 코드도 포함 : listView.setChoiceMode (ListView.CHOICE_MODE_SINGLE);

다른 API 레벨의 경우 : 맞춤 배열 어댑터를 만들고 여기에 아래 메소드를 추가해야합니다. 처음에 selectedPosition = -1; // 목록을 맨 처음로드 할 때 선택을 제거하려면이 작업이 수행됩니다. 에서의 getView

public void setseletion(int position) { 
    this.selectedPosition = position; // selected position in the list 
    notifyDataSetChanged(); 
} 

() 메소드는 별도로리스트 설정에서이 또한

public View getView(int position, View convertView, ViewGroup parent) { 
if (position == selectedPosition) { 
     convertView.setBackgroundColor(getResources().getColor(
        R.color.gray)); 
} else { 
     convertView.setBackgroundColor(getResources().getColor(
        R.color.transparent)); 
} 

마지막 목록보기의 OnItemClickListener이 포함 포함한다.

public void onItemClick(AdapterView<?> arg0, View view, int position, 
     long arg3) { 
    MyArrayAdapter adapter = (MyArrayAdapter) listView.getAdapter(); 
    adapter.setseletion(position); 
} 
+0

내 대답 해 봤어 ?? – light365

관련 문제