Android 컨트롤 ListView 사용 방법 상세 설명
1.ListView 의 간단 한 용법
먼저 ListView Test 프로젝트 를 새로 만 들 고 Android Studio 가 자동 으로 이 벤트 를 만 들 수 있 도록 합 니 다.그리고 activity 수정main.xml 의 코드 는 다음 과 같 습 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
다음은 MainActivity 의 코드 를 수정 합 니 다.
public class MainActivity extends AppCompatActivity {
private String[] data={"Apple","Banana","Orange","Watermelon","Pear","Grape","Pineapple","Strawberry","Cherry","Mango","Apple","Banana","Orange","Watermelon","Pear","Grape","Pineapple","Strawberry","Cherry","Mango"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,data);
ListView listview=(ListView)findViewById(R.id.list_view);
listview.setAdapter(adapter);
}
}
배열 의 데 이 터 는 ListView 에 직접 전달 할 수 없 으 며 어댑터 를 통 해 이 루어 져 야 합 니 다.Array Adapter 의 구조 함수 에서 현재 컨 텍스트,ListView 하위 항목 레이아웃 의 id,그리고 적합 한 데 이 터 를 순서대로 전달 합 니 다.
ListView 의 setAdapter()방법 을 호출 하여 구 축 된 어댑터 대상 을 전달 합 니 다.그러면 ListView 와 데이터 간 의 연결 이 완 료 됩 니 다.
프로그램 을 실행 하면 화면 밖의 데 이 터 를 스크롤 해서 볼 수 있 습 니 다.
2.맞 춤 형 ListView 의 인터페이스
먼저 그림 을 준비 하고 위 에서 제공 하 는 모든 과일(그림 크기 가 가능 한 한 일치 하도록 주의)에 대응 하 며 drawable 디 렉 터 리 에 놓 고 이름 에 대문자 가 나타 나 지 않도록 주의 하 십시오(예 를 들 어 Apple 이 합 법 적 이지 않 습 니 다).
com.example.administrator.listviewtest 에서 새.java 파일 을 만 들 고 실체 클래스 Fruit 를 ListView 어댑터 의 어댑터 형식 으로 정의 합 니 다.
public class Fruit{
private String name;
private int imageId;
public Fruit(String name,int imageId){
this.name=name;
this.imageId=imageId;
}
public String getName(){
return name;
}
public int getImageId(){
return imageId;
}
}
그리고 ListView 의 하위 항목 에 사용자 정의 레이아웃 을 지정 하고 layot 디 렉 터 리 에 새 fruititem.xml。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/fruit_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/fruit_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
/>
</LinearLayout>
다음은 사용자 정의 어댑터 를 만 듭 니 다.com.example.administrator.listviewtest 에서 새.java 파일 을 만 들 고 부모 클래스 의 구조 함 수 를 다시 썼 습 니 다.컨 텍스트,ListView 하위 항목 레이아웃 의 id 와 데 이 터 를 모두 전달 하 는 데 사 용 됩 니 다.FruitAdapter 라 고 명명 되 었 습 니 다.코드 는 다음 과 같 습 니 다.
public class FruitAdapter extends ArrayAdapter<Fruit> {
private int resourceId;
public FruitAdapter(Context context, int textViewResourceId, List<Fruit> objects){
super(context,textViewResourceId,objects);
resourceId=textViewResourceId;
}
@Override
public View getView(int position,View convertView,ViewGroup parent){
Fruit fruit=getItem(position); //
View view= LayoutInflater.from(getContext()).inflate(resourceId,parent,false);
ImageView fruitImage=(ImageView)view.findViewById(R.id.fruit_image);
TextView fruitName=(TextView) view.findViewById(R.id.fruit_name);
fruitImage.setImageResource(fruit.getImageId());
fruitName.setText(fruit.getName());
return view;
}
}
다음은 MainActivity 의 코드 를 수정 합 니 다.
package com.example.administrator.listviewtest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<Fruit> fruitList=new ArrayList<>();
// private String[] data={"Apple","Banana","Orange","Watermelon","Pear","Grape","Pineapple","Strawberry","Cherry","Mango","Apple","Banana","Orange","Watermelon","Pear","Grape","Pineapple","Strawberry","Cherry","Mango"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFruits(); //
FruitAdapter adapter=new FruitAdapter(MainActivity.this,R.layout.fruit_item,fruitList);
// ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data);
ListView listview = (ListView) findViewById(R.id.list_view);
listview.setAdapter(adapter);
}
private void initFruits(){
for(int i=0;i<2;i++){
Fruit apple=new Fruit("Apple",R.drawable.apple);
fruitList.add(apple);
Fruit orange=new Fruit("Orange",R.drawable.orange);
fruitList.add(orange);
Fruit banana=new Fruit("Banana",R.drawable.banana);
fruitList.add(banana);
Fruit waterlenmo=new Fruit("Waterlemon",R.drawable.waterlemon);
fruitList.add(waterlenmo);
Fruit pear=new Fruit("Pear",R.drawable.pear);
fruitList.add(pear);
Fruit grape=new Fruit("Grape",R.drawable.grape);
fruitList.add(grape);
Fruit pineapple=new Fruit("Pineapple",R.drawable.pineapple);
fruitList.add(pineapple);
Fruit strawberry=new Fruit("Strawberry",R.drawable.straw);
fruitList.add(strawberry);
Fruit cherry=new Fruit("Cherry",R.drawable.cherry);
fruitList.add(cherry);
Fruit mango=new Fruit("mango",R.drawable.mango);
fruitList.add(mango);
}
}
}
프로그램 을 실행 한 후 효과 도 는 다음 과 같다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.