Android ListView 기본 구현 코드 선택
•레이아웃 파일 정의
◦ListView 정의
◦item 템 플 릿 정의
코드
◦초기 화 목록
◦사용자 클릭 처리
효과
--------------------------------------------------------------------------------
ListView 를 사용 하여 충전 방식 을 선택 하려 면 기본적으로 두 번 째 항목 을 선택 하고 싶 습 니 다.오후 내 내 끝 났 습 니 다.원래 자바 로 안 드 로 이 드 애플 리 케 이 션 을 별로 써 본 적 이 없 는데 오 랜 만 에 써 서 모든 것 이 서 툴 러 지고 덜렁이 가 바보 가 되 었 습 니 다.
레이아웃 파일 정의
두 부분 으로 나 뉘 는데 일 부 는 ListView 의 정의 이 고 일 부 는 item 템 플 릿,즉 row 의 정의 입 니 다.
ListView 정의
말하자면 간단 합 니 다.다음은 Layout 파일 의 ListView 정의 입 니 다.
<ListView
android:id="@+id/recharge_method_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:dividerHeight="2dp"
android:divider="@color/ssq_bkgnd"
android:background="@android:color/white"
android:choiceMode="singleChoice"
android:listSelector="@null"
>
</ListView>
이봐,말 하지 마.CSDN 의 Markdown 편집 기 는 원래 의 기본 편집기 보다 훨씬 좋 고 코드 삽입 이 더 쉬 워 졌어.CSDN 의 마크 다운 을 사용 한 것 은 이번 이 처음이다.짠!item 템 플 릿 정의
item 템 플 릿 은 다음 과 같이 정의 합 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_vertical"
android:background="@drawable/option_selector"
>
<ImageView
android:id="@+id/recharge_method_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="4dp"
/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
>
<TextView
android:id="@+id/recharge_method_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
/>
<TextView
android:id="@+id/recharge_method_clue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
/>
</LinearLayout>
<ImageView
android:id="@+id/recharge_method_checked"
android:layout_width="34dp"
android:layout_height="28dp"
android:layout_marginRight="16dp"
android:src="@drawable/option_checked"
android:visibility="invisible"
/>
</LinearLayout>
저 는 ListView 의 item 에 선택 아이콘 을 표시 하기 위해 item 템 플 릿 파일 을 정의 할 때 ImageView 를 추가 하여 표시 와 숨 김 을 제어 하여 선택 한 효 과 를 얻 었 습 니 다.게 으 름 을 피 웠 습 니 다.이것 은 비교적 간단 한 실현 입 니 다.ListView 에서 item 수량 이 많 지 않 을 때 메모리,성능 등에 큰 영향 을 주지 않 습 니 다.코드
코드 가 간단 합 니 다.두 부분 으로 나 누 어 보 세 요.일 부 는 목록 을 초기 화 하 는 것 입 니 다.일 부 는 사용자 가 목록 의 한 항목 을 클릭 한 후에 선택 표 시 를 전환 하 는 것 입 니 다.
목록 초기 화
initRechargeList()방법 은 충전 방식 목록 을 초기 화 하 는 데 사 용 됩 니 다.코드 는 다음 과 같 습 니 다.
private void initRechargeList(){
actionTexts = new String[]{
getString(R.string.recharge_unionpay), getString(R.string.recharge_alipay), getString(R.string.recharge_bestpay)
};
actionClue = new String[]{
getString(R.string.recharge_unionpay_clue), getString(R.string.recharge_alipay_clue), getString(R.string.recharge_bestpay_clue)
};
actionImages = new int[]{
R.drawable.unionpay,
R.drawable.recharge_icon_alipay,
R.drawable.recharge_icon_bestpay
};
actionList = (ListView)findViewById(R.id.recharge_method_list);
actionItems = new ArrayList<HashMap<String, Object>>();
actionAdapter = new SimpleAdapter(this, actionItems, R.layout.recharge_method_list_item,
new String[]{"action_icon", "action_name", "action_clue"},
new int[]{R.id.recharge_method_icon, R.id.recharge_method_name, R.id.recharge_method_clue});
for(int i = 0; i < actionImages.length; ++i) {
HashMap<String, Object> item = new HashMap<String, Object>();
item.put("action_icon", actionImages[i]);
item.put("action_name", actionTexts[i]);
item.put("action_clue", actionClue[i]);
actionItems.add(item);
}
actionList.setAdapter(actionAdapter);
actionList.setOnItemClickListener(itemListener);
actionList.post(new Runnable() {
@Override
public void run() {
lastCheckedOption = actionList.getChildAt(1).findViewById(R.id.recharge_method_checked);
lastCheckedOption.setVisibility(View.VISIBLE);
actionList.setItemChecked(1, true);
}
});
}
위의 코드 는 충전 방식 목록 을 초기 화 하 는 것 입 니 다.ListView 의 용법 도 비교적 간단 하 다.ViewCRow Template CDataCAdapter,네 가지 요소.내 가 만난 문 제 는 어떤 것 을 선택 하 는 것 을 어떻게 기본 으로 하 느 냐 하 는 것 이다.
실제로 내 리스트 에는 세 가지 밖 에 없 는데,어느 것 이 보이 지 않 을 지 는 고려 하지 않 아 도 안 드 로 이 드 휴대 전화 에서 모두 볼 수 있 을 것 이다.
처음에 나 는 ListView 의 setAdapter 방법 을 호출 한 후에 getChildAt(1)을 사용 하여 두 번 째 대응 하 는 View 를 얻 었 다.맞 아,붕괴 되 었 다.Null Pointer Exception.빈 지침 이 야,C++의 옛 애인 으로 자바 로 안 드 로 이 드 를 썼 는데,그녀 는 또 나 와 데 이 트 를 하 러 달 려 왔 다.
한참 을 하고 나 서 야 나 는 setAdapter()가 사실은 비동기 적 이라는 것 을 알 게 되 었 다.이 방법 을 사용 했다.ListView 의 item 은 바로 만 들 지 않 고 다음 메시지 처리 때 만 들 었 다.이것 을 알 게 되면 앞 코드 의 해결 방법 이 있 습 니 다.post()를 사용 하여 Runnable()대상 을 제출 하고 Runnable()내부 에서 초기 화 동작 을 기본 으로 선택 합 니 다.
보시 다시 피 저 는 runnable 이 post()방법 을 주 었 습 니 다.run()에서 두 번 째 항목 을 찾 아 선택 한 아이콘 을 보 여 주 었 습 니 다.그리고 나 는 두 번 째 항목 에 대응 하 는 View 를 lastCheckedOption 구성원 변수 에 저장 했다.다음 에 저 희 는 lastCheckedOption 이라는 변 수 를 통 해 OnitemClickListener 와 결합 하여 ListView 에서 세 개의 item 의 상호 배척 선택 효 과 를 실현 할 것 입 니 다.
Markdown 은 어떻게 각 단락 앞 에 들 여 쓰 지............................................................................
사용자 클릭 처리
클릭 처 리 는 AdapterView.Onitem Clicked Listener 인 터 페 이 스 를 통 해 이 루어 집 니 다.코드 는 다음 과 같 습 니 다:
private AdapterView.OnItemClickListener itemListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(lastCheckedOption != null){
lastCheckedOption.setVisibility(View.INVISIBLE);
}
lastCheckedOption = view.findViewById(R.id.recharge_method_checked);
lastCheckedOption.setVisibility(View.VISIBLE);
}
};
보시 다시 피 저 는 lastCheckedOption 변 수 를 통 해 지난번 에 선택 한 아 이 템 의 선택 효 과 를 나타 내 는 아이콘 을 저 장 했 습 니 다.사용자 가 누 르 면 이전 아 이 템 의 선택 아이콘 을 숨 기 고 현재 의 것 을 표시 하면 서로 배척 하 는 효과 가 있 습 니 다.모든 것 이 이렇게 간단 해서 해결 되 었 다.
효과.
최종 효 과 는 자줏빛 이다.
에이,그림 을 삽입 하 는 것 이 원래 의 비 Markdown 편집기 보다 훨씬 좋다.
--------------------------------------------------------------------------------
됐어,내 가 또 안 드 로 이 드 애플 리 케 이 션 을 쓸 줄 은 몰랐어.하 이 느낌 이 야.
--------------------------------------------------------------------------------
Markdown 버 전의 편집기 가 작성 한 블 로그 가 어떻게 부 었 는 지 아직 모 르 겠 습 니 다.디 렉 터 리 를 만 들 었 습 니 다.바로 TOC 하면 됩 니 다.그래도 편리 합 니 다.다 썼 는데 도 단락 의 줄 의 들 여 쓰 기 를 어떻게 하 는 지 모르겠다.
오프라인 편집 도 지원 한다 고 합 니 다.짠.
또 하 나 는 좌우 칸 으로 효 과 를 볼 수 있 습 니 다.github 의 위 키 페이지 편집 보다 좋 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.