Sponsored By
















텍스트 대신에 레이아웃형태를 리스트뷰 시키는 방법임.

 

 

이전 리스트뷰 코드와 많이 겹쳤기때문에 이어서 사용했슴.

(※ 이전 리스트뷰 주소 참고 - https://asterisco.tistory.com/44)

 

 

 

 

 

 

 

 

 

00. res밑에 layout 마우스오른쪽버튼 클릭 - New - resource Files 클릭







01. 이름을 지어주고 OK버튼 클릭. (fruits_item.xml이라고 지어줬다.)







02. 코드를 입력하고 아래쪽에 디자인 텝을 눌러 디자인을 확인해보자.

<?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="wrap_content">

 

    <ImageView

        android:layout_width="100dp"

        android:layout_height="100dp"

        android:src="@mipmap/ic_launcher" />

 

    <LinearLayout

        android:orientation="vertical"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_gravity="center_vertical">

 

        <TextView

            android:id="@+id/nameTextView"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:textSize="30dp"

            android:textColor="#ff000000"/>

 

        <TextView

            android:id="@+id/ageTextView"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:textSize="25dp"

            android:textColor="#ff0000ff"/>

 

    </LinearLayout>

</LinearLayout>







03. 저런식으로 들어가게된다. 실제 이미지 옆에 마우스를 가져다놓으면 리스트뷰의 위치를 확인 할 수 있다.







04. 메인자바Script위에서 마우스오른쪽버튼클릭 - New - JavaClass 클릭







05. 방금만든 xml파일과 연결시켜주기위해 이름을 비슷하게 지어주고 OK버튼 클릭.







06. class FruitsItemView extends LinearLayout {}라고 치고 Alt+Enter 를 쳐서 기본 constructure를 불러오자.







07. 연결시켜주기 위해서 fruits_item.xml의 텍스트뷰에 아이디를 입력하자.







08. FruitsItemView Script에 다음과 같이 코드를 입력하자.

package com.example.joey.mylistview;

import ...

class FruitsItemView extends LinearLayout {

 

    TextView nameTextView;

    TextView ageTextView;

 

    public FruitsItemView(Context context) {

        super(context);

        init(context);

    }

    public FruitsItemView(Context context, AttributeSet attrs) {

        super(context, attrs);

        init(context);

    }

    private void init(Context context){

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        inflater.inflate(R.layout.fruits_item, this, true);

        nameTextView = (TextView) findViewById(R.id.nameTextView);

        ageTextView = (TextView) findViewById(R.id.ageTextView);

    }

    public void setName(String name){

        nameTextView.setText(name);

    }

    public void setAge(String age){

        ageTextView.setText(age);

    }

}







09. 메인Script로 와서 로딩해주자.

package com.example.joey.mylistview;

import ...

public class MainActivity extends AppCompatActivity {

    ListView listView;

    FruitsAdapter fruitsAdapter;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

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

        fruitsAdapter = new FruitsAdapter();

        listView.setAdapter(fruitsAdapter);

    }

    class FruitsAdapter extends BaseAdapter {

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

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

        @Override

        public int getCount() {

            return names.length;

        }

        @Override

        public Object getItem(int position) {

            return names[position];

        }

        @Override

        public long getItemId(int position) {

            return position;

        }

        @Override

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

 

            FruitsItemView view = new FruitsItemView(getApplicationContext());

            view.setName(names[position]);

            view.setAge(ages[position]);

            return view;

        }

    }

}







10. 실행시켜보자.







11. 정상적으로 작동되었음을 확인 할 수 있다.

 



Sponsored By















+ Recent posts