2015년 7월 20일 월요일

[android] listview 구현하기

<main.xml>
android:divider -> 리스트의 셀사이의 선색
android:dividerHeight -> 리스트의 셀사이 선 두께
1
2
3
4
5
6
7
<ListView
     android:id="@+id/list"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:divider="#ff0000"
     android:dividerHeight="1dp" >
</ListView>
cs


<MainActivity.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ArrayList<String> m_arr;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        m_arr = new ArrayList<String>();
        m_arr.add("김수현");
        m_arr.add("송중기");
        m_arr.add("비스트");
        
        ArrayAdapter<String> m_Adapter  = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, m_arr);
        ListView m_list = (ListView)findViewById(R.id.list);
        m_list.setOnItemClickListener(mItemClickListener);
        m_list.setAdapter(m_Adapter);
    }
    
    AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position , long id)
        {    
            Toast.makeText(MainActivity.this, m_arr.get(position), Toast.LENGTH_SHORT).show();
        }
    };
cs


고정적인 문자열일 경우 ArrayList대신 사용가능한 방법.

* 단순배열로 가능.
   String[] str = {"이기광","윤두준","양요섭", "용준형"};

* 리소스에 정의한 후 읽어오는 방법.(고정적인 문자열이라면 추천)
   1. values/array.xml 파일 생성(File > New > Other > Android XML Values File)
   2. Add... > String Array > OK > Name지정





















 3. Add... > Item > OK > Value값 입력
 4. Item을 모두 추가한후 arrays.xml을 확인해보면 다음과 같이 생성.
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="name">
        <item >이기광</item>
        <item >윤두준</item>
        <item >용준형</item>
        <item />
    </string-array>
</resources>
cs

5. MainActivity.java에서 createFromResource를 사용하여
1
 ArrayAdapter<CharSequence> m_Adapter = ArrayAdapter.createFromResource(this, R.array.name, android.R.layout.simple_list_item_1);
cs




댓글 없음:

댓글 쓰기