open coding

Tow Line ListView - simpleAdapter 이용 - open

◀ ▷ ▶ ♤ ♠ ♡ ♥ ♧ ♣ ⊙e 2020. 10. 18. 04:00
반응형

package com.example.simpleadapter;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

    //list항목 구성위한 문자열 2개
    String[] data1 = {"t1","t2","t3","t4","t5","t6"};
    String[] data2 = {"s1","s2","s3","s4","s5","s6"};

    //define variables
    ListView list1;
    TextView textView1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    //connect to xml id
        list1 = findViewById(R.id.list1);
        textView1 = findViewById(R.id.textView1);

        //ArrayList 설정. data 하나로 담을(두개의 data는 hashmap으로 하나로 묶음.)
        ArrayList<HashMap<String,String>> data_list = new ArrayList<>();

        //ArrayList에 data 담기
        for(int i=0; i<data1.length; i++){
            HashMap<String, String> map = new HashMap<>();
            map.put("str1",data1[i]);
            map.put("str2",data2[i]);

            data_list.add(map);
        }

        //hashap key랑 data 설정해서 adapter에 넣기
        String[] keys = {"str1","str2"};
        int [] ids = {android.R.id.text1, android.R.id.text2};   //미리 쓸 안드로이드 layout가봐서 text아이디 봐보기.
                                                                // ctrl키 누르면 링크나온다. 디자인화면창으로 이동가능.
                                                                //simple_list_item_2 layout확인.

        //adapter listview에 setting
        SimpleAdapter adapter = new SimpleAdapter(this, data_list,android.R.layout.simple_list_item_2,keys,ids);
        list1.setAdapter(adapter);

        //리스너 method setting
        ListListener listener = new ListListener();
        list1.setOnItemClickListener(listener);     // list1 클릭하면 listenver 실행.
    }

// finish @0verride
    // listener method define

    class ListListener implements AdapterView.OnItemClickListener{
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            textView1.setText(data1[position]);
        }
    }

}