강의링크 : https://youtu.be/4E-WUdhJq3M
1.
activity_main.xml 에 Container>listview를 추가하고 id를 설정한 후
app/java/com.example~/MainActivity에 다음과 같이 코드 작성
MainActivity |
package com.example.han.tutorial5; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
String[] items = {"a", "b", "c", "d", "e", "f", "g"}; // adapter : 실제로 리스트에 들어 갈 내용을 담는 부분 ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); ListView listView = (ListView)findViewById(R.id.listView); listView.setAdapter(adapter);
listView.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int i, long l) { // parent의 특정한 아이템 String item = String.valueOf(parent.getItemAtPosition(i)); Toast.makeText(MainActivity.this, item, Toast.LENGTH_SHORT).show(); } } ); } }
|
실행하면 기본적인 텍스트로 구성된 리스트뷰가 생성됨.
2. 이미지 추가
app/res/layout 폴더에 image_layout.xml 파일 생성 후에 imageView 하나 textView 하나 생성
app/java/com.example~ 폴더에 ImageAdapter 파일을 생성 후에 생성자와 getView함수를 새로 정의함
ImageAdapter |
package com.example.han.tutorial5; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView;
/** * Created by HAN on 2018. 1. 8.. */
public class ImageAdapter extends ArrayAdapter<String>{ ImageAdapter(Context context, String[] items){ super(context, R.layout.image_layout, items); }
@NonNull @Override public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { LayoutInflater imageInflator = LayoutInflater.from(getContext()); // 레이아웃 중 image layout을 가져와서 view 를 만 View view = imageInflator.inflate(R.layout.image_layout, parent, false); String item = getItem(position); // textView, imageView 모두 디자인에서 가져와서 객체로 만들어 TextView textView = (TextView) view.findViewById(R.id.textView); ImageView imageView = (ImageView) view.findViewById(R.id.imageView); textView.setText(item); imageView.setImageResource(R.mipmap.balloon); return view; } }
|