대표적으로 사용하는 5가지 ListView & Spinner

 

 

1.simple_list_item_1

  • 하나의 리스트에 하나의 내용만 보여줌

 

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        final TextView  tv_select = (TextView)findViewById(R.id.tv_select);
         final ListView listView = (ListView)findViewById(R.id.listView);

        final ArrayList<String> list = new ArrayList<String>();

        list.add("사과");
        list.add("배");
        list.add("딸기");
        list.add("감자");


        //adapter list관계
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,list);
        listView.setAdapter(adapter);

 

 

 

 

2.simple_list_item_2

  • 하나의 리스트에 두개의 내용을 보여줌

 

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        final TextView tv_select = (TextView) findViewById(R.id.tv_select);
        final ListView listView = (ListView) findViewById(R.id.listView);

        final ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
        HashMap<String, String> item;
     
        item = new HashMap<String, String>();
        item.put("item1", "사과");
        item.put("item2", "apple");
        list.add(item);
        
        item = new HashMap<String, String>();
        item.put("item1", "orange");
        item.put("item2", "오렌지");
        list.add(item);
       
        item = new HashMap<String, String>();
        item.put("item1", "딸기");
        item.put("item2", "strawberry");
        list.add(item);
        
        //adapter list관계
        SimpleAdapter simpleAdapter = new SimpleAdapter(this, list, android.R.layout.simple_list_item_2,
                new String[]{"item1", "item2"},
                new int[]{android.R.id.text1, android.R.id.text2});
        listView.setAdapter(simpleAdapter);

 

 

 

 

3.simple_list_item_single_choice

  • 항목 하나만 선택할 수 있다.

   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        final TextView  tv_select = (TextView)findViewById(R.id.tv_select);
         final ListView listView = (ListView)findViewById(R.id.listView);

        final ArrayList<String> list = new ArrayList<String>();

        list.add("사과");
        list.add("배");
        list.add("딸기");
        list.add("감자");


        //adapter list관계
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_single_choice,list);
        listView.setAdapter(adapter);

 

 

 

 

 

4.simple_list_item_multiple_choice

  • 여러 항목을 선택할 수 있다.

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        final TextView  tv_select = (TextView)findViewById(R.id.tv_select);
         final ListView listView = (ListView)findViewById(R.id.listView);

        final ArrayList<String> list = new ArrayList<String>();

        list.add("사과");
        list.add("배");
        list.add("딸기");
        list.add("감자");


        //adapter list관계
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_multiple_choice,list);
        listView.setAdapter(adapter);

 

 

 

 

 

5.simple_spinner_item

  •  스피너란 리스트뷰나 그리드뷰와 달리 하나의 데이터만 보여주는 항목이다.

 

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        final TextView  tv_select = (TextView)findViewById(R.id.tv_select);
        final Spinner spinner = (Spinner)findViewById(R.id.spinner);
        final ArrayList<String> list = new ArrayList<String>();

        list.add("사과");
        list.add("배");
        list.add("딸기");
        list.add("감자");


        //adapter list관계
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_spinner_item,list);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

 

alertDialog

-대화 상자를 말하는데 어떤 앱을 실행 시 경고 메세지나 특정한 정보를 알려주기 위한 다이얼로그를 말한다.

handler를 이용해 특정한 시간이 지났을 때, 특정한 버튼을 눌렀을 때 구현하는 기능이다.

이와 같이 확인 버튼을 눌러서 어플을 사용하는데 제약을 걸거나 이벤트를 발생하게 한다.

보통은 확인과 취소버튼으로 이루어져있다.

자신이 원하는 형태로 AlertDialog를 만들 수 있다! 자세한 코드는 아래에서 살펴보자.

 

AlertDialog builder <----> alertDialog의 관계

builder : 대화상자안에 있는 속성을 정의한다(title이나 버튼 눌렀을 때 나타나는 속성들을 가르킴)

alertDialog : create()함수를 통해 builder에게 전달받아서 생성을 하고 구현하는 로직이다

 

 

 

builder로 정의한 후  msgDlg로 AlertDialog를 만들어 사용한다!!

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

        Button btn_quit = (Button)findViewById(R.id.btn_quit);
        btn_quit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AlertDialog.Builder msgBuilder = new AlertDialog.Builder(MainActivity.this)
                        .setTitle("어플 종료") //title setting
                        .setMessage("어플 종료??!") //
                        .setPositiveButton("끈다", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                finish();
                            }
                        })
                        .setNegativeButton("안끈다", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                Toast.makeText(getApplicationContext(),"안끌래",Toast.LENGTH_LONG).show();
                            }
                        }); // 띄우고자 하는 다이얼로그 속성을 지정해주는 것을 마무리한다
                AlertDialog msgDlg = msgBuilder.create(); //속성을 지정한 msgBuilder 객체를 바탕으로 AlertDialog가 생성됨
                msgDlg.show();
            }
        });

    }

 

 

ListView & Arrayadapter

리스트 뷰는 해당 뷰들을 리스트 형태로 나열하는 방법을 말한다.

ArrayList로 list를 만든 후 Adapter에게 list값들을 전달하여 ListView에 전달한다. 즉 Adapter는 매개체 역할을 한다.

Data -----> Adapter <---- ListView -->(xml)

 

아래의 그림은 4가지의 List를 만든후 ListView가 클릭됬을 때 해당 position에 따라 출력되는 화면이다.

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        final TextView  tv_select = (TextView)findViewById(R.id.tv_select);
         final ListView listView = (ListView)findViewById(R.id.listView);

         final List<String> list = new ArrayList<>();
        list.add("사과");
        list.add("배");
        list.add("딸기");
        list.add("감자");

        //adapter list관계
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,list);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                String name = (String) listView.getItemAtPosition(position); //listView안에 있는 position에 위치한 값을 가져옴
                tv_select.setText("항목 선택 결과는 "+name+"입니다!!");
                //position 값 : 각각의 항목 위치
            }
        });
    }

 

 

 

 

 

 

 

 

 

String값을 전달받아 intent로 MainAcitivty2에 넘겨준다.

전달받은 intent값을 그 액티비티에서 호출한다.

 

MainAcitity

package kr.teamcadi.intentactivity;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

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

        Button btn = (Button)findViewById(R.id.btn_intent);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this,MainActivity2.class);
                intent.putExtra("key","Hi SEUNGWON");
                startActivity(intent);
                finish();
            }
        });
    }
}

 

MainActivity2

package kr.teamcadi.intentactivity;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity2 extends AppCompatActivity {

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

        Button btn2 =(Button)findViewById(R.id.btn_int2);
        final TextView textView = (TextView) findViewById(R.id.textView);

        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent2 =getIntent();
                String txt =intent2.getStringExtra("key");
                if(txt !=null)
                    textView.setText(txt);
            }
        });
    }
}

+ Recent posts