Android 입문 ListView 응용 분석(2)
먼저,본 고의 코드 가 실 행 된 결 과 를 살 펴 보 겠 습 니 다.본 고의 Item 은 전편 의 Item 보다 왼쪽 아이콘 이 많 습 니 다.
main.xml 의 소스 코드 는 이전 편 과 마찬가지 로 설명 하지 않 고 item.xml 코드 를 직접 붙 이 는 것 이 바로 ImageItem 의 UI 를 실현 하 는 것 입 니 다.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:paddingBottom="4dip"
android:paddingLeft="12dip">
<ImageView
android:layout_width="wrap_content"
android:id="@+id/itemImage" android:layout_height="fill_parent">
</ImageView>
<TextView
android:text="TextView01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/itemTitle" android:layout_toRightOf="@+id/itemImage" android:textSize="20dip">
</TextView>
<TextView
android:text="TextView02"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/itemText" android:layout_toRightOf="@+id/itemImage" android:layout_below="@+id/itemTitle">
</TextView>
</RelativeLayout>
item.xml 코드 설명:RelativeLayout 레이아웃 을 사 용 했 습 니 다.컨트롤 의 관건 적 인 속성 은:itemTitle 의 속성 android:layottoRightOf="@+id/itemImage",itemTitle 은 itemImage 오른쪽 에 있 습 니 다.
itemText 의 속성 android:layottoRightOf="@+id/itemImage",ItemText 는 itemImage 오른쪽 에 있 습 니 다.android:layotbelow="@+id/itemtile",itemText 는 itemTitle 아래 에 있 습 니 다.
마지막 으로 JAVA 의 소스 코드 를 붙 이 고 코드 의 중점 은 Layout Inflate 의 용법 입 니 다.LayoutInflate 의 사용 방법 은 다음 과 같다.
Layout Inflater 의 역할 은 View 의 대상 을 XML 레이아웃 파일 과 연결 시 키 고 예화 하 는 것 입 니 다.
View 의 대상 을 실례 화한 후 findViewById()를 통 해 레이아웃 파일 에 지 정 된 Id 의 구성 요 소 를 찾 을 수 있 습 니 다.
자바 코드 는 다음 과 같 습 니 다:
package com.testListView;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class testListView extends Activity {
ListView listView;
String[] titles={" 1"," 2"," 3"," 4"};
String[] texts={" A"," B"," C"," D"};
int[] resIds={R.drawable.icon,R.drawable.icon,R.drawable.icon,R.drawable.icon};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.setTitle("BaseAdapter for ListView");
listView=(ListView)this.findViewById(R.id.listView1);
listView.setAdapter(new ListViewAdapter(titles,texts,resIds));
}
public class ListViewAdapter extends BaseAdapter {
View[] itemViews;
public ListViewAdapter(String[] itemTitles, String[] itemTexts,
int[] itemImageRes) {
itemViews = new View[itemTitles.length];
for (int i = 0; i < itemViews.length; i++) {
itemViews[i] = makeItemView(itemTitles[i], itemTexts[i],
itemImageRes[i]);
}
}
public int getCount() {
return itemViews.length;
}
public View getItem(int position) {
return itemViews[position];
}
public long getItemId(int position) {
return position;
}
private View makeItemView(String strTitle, String strText, int resId) {
LayoutInflater inflater = (LayoutInflater) testListView.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// View itemView R.layout.item
View itemView = inflater.inflate(R.layout.item, null);
// findViewById() R.layout.item
TextView title = (TextView) itemView.findViewById(R.id.itemTitle);
title.setText(strTitle);
TextView text = (TextView) itemView.findViewById(R.id.itemText);
text.setText(strText);
ImageView image = (ImageView) itemView.findViewById(R.id.itemImage);
image.setImageResource(resId);
return itemView;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
return itemViews[position];
return convertView;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.