Sponsored By
















 

실전에서 많이 쓰이는 참조형 리스트뷰 에대한 사용 방법임.

 

 

이전 포스팅과 코드가 많이 겹치므로 이어서 사용함.

(※ 이전포스팅 주소 : https://asterisco.tistory.com/45)

 

 

 

 

 

 

 

 

 

00. 자바위에 마우스오른쪽버튼 클릭 - New - JavaClass 클릭.







01. 이름을 부여하고 OK버튼 클릭 (FruitsItem이라고 지음)







02. 다음과 같이 입력하고 마우스 오른쪽 버튼클릭 - Generate 클릭

public class FruitsItem{

String names;

String ages;

}







03. Getter and Setter 로 불러들여온다.







04. 두개다 선택하고 클릭







05. 다시한번 바탕화면에서 마우스 오른쪽버튼클릭 - Generate 클릭







06. 이번에는 Constructor를 클릭







07. 이번에도 두개다 선택한후 OK버튼을 클릭한다.







08. 다음과 같이 나타나는데 디폴트생성자만 하나 더 추가해주자.







09. 메인Script로 와서 지정되었던 값들을 밖으로 빼고 ArrayList를 사용하여 이 값들을 참조하자.







10. 중간에 addItem 을 하나 만들어주고 마지막부분을 효율을 높여주기위해 다음과 같이 수정한다.

@Override

public View getView(int position, View convertView, ViewGroup parent) {

       FruitsItemView view = null;

       if (convertView == null){

           view = new FruitsItemView(getApplicationContext());

       } else {

           view = (FruitsItemView) convertView;

       }

       FruitsItem curItem = items.get(position);

       view.setName(curItem.getName());

       view.setAge(curItem.getAge());

       return view;

   }







11. 실행시켜본다.







12. 정상적으로 작동됨을 확인 할 수 있다.

 

 

 

 

참고: 메인자바스크립트 전체코드임.

 

 

package com.example.joey.mylistview;

 

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ListView;

 

import java.util.ArrayList;

 

public class MainActivity extends AppCompatActivity {

 

    ListView listView;

    FruitsAdapter fruitsAdapter;

 

    String[] names = {"사과", "바나나", "딸기", "메론", "오렌지"};

    String[] ages = {"21", "23", "25", "68", "10"};

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

 

        listView = (ListView) findViewById(R.id.listView);

        fruitsAdapter = new FruitsAdapter();

        fruitsAdapter.addItem(new FruitsItem(names[0], ages[0]));

        fruitsAdapter.addItem(new FruitsItem(names[1], ages[1]));

        fruitsAdapter.addItem(new FruitsItem(names[2], ages[2]));

        fruitsAdapter.addItem(new FruitsItem(names[3], ages[3]));

        fruitsAdapter.addItem(new FruitsItem(names[4], ages[4]));

        listView.setAdapter(fruitsAdapter);

    }

 

    class FruitsAdapter extends BaseAdapter {

        ArrayList<FruitsItem> items = new ArrayList<FruitsItem>();

 

        @Override

        public int getCount() {

            return items.size();

        }

 

        public void addItem(FruitsItem item){

            items.add(item);

        }

 

        @Override

        public Object getItem(int position) {

            return items.get(position);

        }

 

        @Override

        public long getItemId(int position) {

            return position;

        }

 

        @Override

        public View getView(int position, View convertView, ViewGroup parent) {

 

            FruitsItemView view = null;

            if (convertView == null){

                view = new FruitsItemView(getApplicationContext());

            } else {

                view = (FruitsItemView) convertView;

            }

            FruitsItem curItem = items.get(position);

 

            view.setName(curItem.getName());

            view.setAge(curItem.getAge());

 

            return view;

        }

 

    }

}

 



Sponsored By















+ Recent posts