ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android 실습 (5)
    Android 2022. 7. 13. 17:49
    <resources>
        <string name="app_name">Ex_0713</string>
    
        <string-array name="boardlist">
            <item>1. 여러분 안녕하세요~</item>
            <item>2. 오늘도 즐거운 수업시간 입니다.</item>
            <item>3. 어제의 침팬지는 잊을수가 없네요..ㅎ</item>
        </string-array>
    </resources>

    string.xml 에서 위와 같은 코드를 추가합니다.

     

     

    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;
    
        // 데이터셋이 될 수 있는 배열 생성하기
        // String[] dataset = new String[20];
    
        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[i-1] = String.valueOf(i);
                dataset.add(String.valueOf(i));
            }
    
            // 어댑터 생성하기
            // context : Activity 정보,
            // layout : 사용하고자 하는 layout 템플릿
            // dataset : 실제로 띄워져야 하는 데이터
            ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplication(),
                    android.R.layout.simple_list_item_1,
                    dataset);
    
            // 보여질 수 있는 listview 영역에 해당 adapter 연결하기!
            listView2.setAdapter(adapter);
    
            // listview2에 있는 항목을 선택했을 경우
            // 해당하는 값을 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 값을 listveiw3에 띄우기!
            btn_input.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    String msg = txt_msg.getText().toString();
    
                    txt_msg.setText("");
    
                    // 데이터셋 추가하기!
                    dataset.add(msg);
    
                    listView3.setAdapter(adapter);
                    // 데이터를 layout과 연결할 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 실습 (7)  (0) 2022.07.14
    Android 실습 (6)  (0) 2022.07.14
    Android 이론 (3)  (0) 2022.07.13
    Android 실습 (5)  (0) 2022.07.13
    Android 실습 (4)  (1) 2022.07.12

    댓글

Designed by Tistory.