희원96
코딩 공부 일기
희원96
전체 방문자
오늘
어제
  • 다이어리 (94)
    • 일상 (2)
      • #.일기 (2)
      • 정보처리기사 (0)
    • 코딩 공부 (90)
      • Python (11)
      • Java (12)
      • DB (18)
      • Arduino (5)
      • HTML,CSS (7)
      • JSP, Servlet (14)
      • Javascript (8)
      • jQuery (2)
      • Spring (1)
      • Android (8)
      • ML (4)
      • React (0)
    • 프로젝트 (1)
      • 미니프로젝트 (1)
      • 1차프로젝트 (0)
      • 2차프로젝트 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 개발 공부 일기

인기 글

태그

  • Python
  • 데이터베이스
  • Ajax
  • JavaFestival
  • 스마트인재개발원
  • CSS
  • 머신러닝
  • DB
  • Android
  • arduino
  • 자바
  • 자바스크립트
  • JSP
  • Database
  • java
  • Spring
  • Servlet
  • 아두이노
  • 안드로이드
  • 화이팅
  • 스프링
  • ml
  • jQuery
  • JavaScript
  • HTML
  • 제이쿼리
  • 파이썬
  • JS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
희원96
코딩 공부/Android

[Android] Adapter View

[Android] Adapter View
코딩 공부/Android

[Android] Adapter View

2022. 7. 14. 08:50
실습(로그인)

package com.example.ex_0713;

import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

    EditText txt_id, txt_pw;
    Button btn_login;

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

        txt_id = findViewById(R.id.txt_id);
        txt_pw = findViewById(R.id.txt_pw);
        btn_login = findViewById(R.id.btn_login);

        // 로그인 버튼 클릭 시 id와 pw 값 가져오기
        btn_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String id = txt_id.getText().toString();
                String pw = txt_pw.getText().toString();

                // id : smhrd
                // pw : 123

                if(id.equals("smhrd") && pw.equals("123")){
                    // 회원이 맞습니다
                    // MainActivity2로 화면전환
                    // 이 때 "__님 환영합니다" 에 Id 띄워주기 위해 id값을 가지고 화면전환
                    Intent intent = new Intent(getApplicationContext(), MainActivity2.class);
                    intent.putExtra("id", id);
                    intent.putExtra("pw", pw);

                    startActivityForResult(intent,0);
                }else{
                    Toast.makeText(getApplicationContext(), "로그인 실패", Toast.LENGTH_SHORT).show();
                }


            }
        });
    }
    // 결과를 돌려받을 수 있는 메소드 생성하기
    ActivityResultLauncher<Intent> mainLauncher = registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            new ActivityResultCallback<ActivityResult>() {
                @Override
                public void onActivityResult(ActivityResult result) {
                    if(result.getResultCode() == RESULT_OK){
                        Toast.makeText(getApplicationContext(), "성공", Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(getApplicationContext(), "실패", Toast.LENGTH_SHORT).show();
                    }
                }
            }
    );
}
package com.example.ex_0713;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity2 extends AppCompatActivity {

    //1. Text 객체 선언
    TextView txt_id2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        //2. TextView id값 찾아오기
        txt_id2 = findViewById(R.id.txt_id2);

        //3. 넘어온 Intent로 부터 Intent값을 가져오기!

        Intent intent = getIntent();
//        String data = intent.getStringExtra("data");
        // - id값 꺼내 오기
        String id = getIntent().getStringExtra("id");
        //4. TextView에 가져온 id값 띄우기 ex) " ~~님 환영합니다"
        txt_id2.setText(id+"님 환영합니다");

    }
}
Adapter View란?

- 하나의 뷰에 여러 데이터를 나열하고 그 중 하나를 사용자에게 선택 받는 뷰

리스트 실습

package com.example.ex_0713;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity5 extends AppCompatActivity {

    ListView listView2;

    // dataset 이 될 수 있는 배열 생성하기
//    String[] dataset = new String[10];

    ArrayList<String> dataset = new ArrayList<>();

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

        listView2 = findViewById(R.id.listView2);

        // 1~10 가지의 dataset 생성
        for(int i = 1; i <= 15; i++){
            dataset.add(String.valueOf(i));
//            dataset[i-1] = i+"";
            // dataset[i-1] = i.toString();
            // dataset[i-1] = String.valueOf(i);
        }

        // Adapter 생성하기
        // ArrayAdapter<String> adapter = new ArrayAdapter<context:Activity 정보, layout:사용하고자 하는 템플릿, dataset:실제로 띄워져야 하는 데이터셋+>();
        ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplication(), android.R.layout.simple_list_item_1, dataset);

        // 보여질 수 있는 listView 영역에 해당 adapter 연결하기
        listView2.setAdapter(adapter);

        // lsitView2에 있는 항목을 선택했을 경우 해당하는 값을 Toast 메세지로 띄우기
        listView2.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                // adapterView : 부모 AdapterView -> listview2
                // view : 선택된 item의 view
                // i : 선택된 항목의 위치값 ★★★
                // l : 선택된 항목의 id값

                Toast.makeText(getApplication(),dataset.get(i).toString(), Toast.LENGTH_SHORT).show();
            }
        });
    }
}
실습(입력 리스트)

package com.example.ex_0713;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity6 extends AppCompatActivity {

    EditText txt_msg;
    Button btn_input;
    ListView listview3;

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

        txt_msg = findViewById(R.id.txt_msg);
        btn_input = findViewById(R.id.btn_input);
        listview3 = findViewById(R.id.listview3);

        ArrayList<String> dataset = new ArrayList<>();

        // 사용할 adapter 최초 선언!
        ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplication(),
                android.R.layout.simple_list_item_1,
                dataset
                );



        // 버튼이 클릭되면 txt_msg 값을 listview3에 띄우기!
        btn_input.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String msg = txt_msg.getText().toString();

                txt_msg.setText("");
                //데이터셋 추가하기!
                dataset.add(msg);

                // 데이터를 layout과 연결할 adapter 생성!

                listview3.setAdapter(adapter);

            }
        });

        //항목을 길게 클릭할 경우 해당 내용 삭제하는 이벤트 만들기!
        listview3.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {


                dataset.remove(i);

                //삭제 이후 최종적인 데이터를 가지고 adapter를 띄울 수 있도록
                //갱신 작업 진행하기!
                adapter.notifyDataSetChanged();


                return true;
                //false : 해당 과정이 끝나고 나서 데이터를 다른곳에서 사용하겠다! -> 선택 내용에 대한 유지가능!
                //true : 해당 과정이 끝나고 나서 데이터 유지x

            }
        });

    }
}
    '코딩 공부/Android' 카테고리의 다른 글
    • [Android]Json
    • [Android]Adapter 실습
    • [Android] Activity & intent
    • [Android] 숫자 게임 만들기
    희원96
    희원96
    개발 공부

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.