값입력 후 ListView에 추가하기.

ListView선택한 값 Toast이용해서 보이기.

 

 

 

(1) activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
 <LinearLayout android:id="@+id/layout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true">
        <EditText  android:id="@+id/edt1"
             android:layout_width="200dp"
          android:layout_height="wrap_content"
          android:hint="추가할 항목입력"/>
        <Button  android:id="@+id/btnAdd"
             android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:text="추가"/>
        <Button  android:id="@+id/btnDel"
             android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:text="삭제"/>
    </LinearLayout>
    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/layout1" >
    </ListView>
</RelativeLayout>

 

(2) MainActivity.java

package com.example.test10_listview;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
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 android.widget.Toast;

 

public class MainActivity extends Activity {
    ListView listView;
    ArrayList<String> list=new ArrayList<String>();
    Button btnAdd;
    Button btnDel;
    ArrayAdapter<String> adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        list.add("딸기우유");
        list.add("바나나우유");
        list.add("포도쥬스");
        list.add("토마토쥬스");
       
        listView=(ListView)findViewById(R.id.listView1);
        btnAdd=(Button)findViewById(R.id.btnAdd);
        btnDel=(Button)findViewById(R.id.btnDel);
       
        //어댑터객체 생성
        adapter=
         new ArrayAdapter<String>(this,//Context객체
                 android.R.layout.simple_list_item_single_choice,//보여질레이아웃형태
                 list //보여질데이터를 담고있는 배열
            );


        //하나의 항목을 선택할 수 있는 모드 설정
        listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);


        //어댑터와 리스트뷰 연결하기
        listView.setAdapter(adapter);


        //항목을 선택했을때 수행할 동작 처리(이벤트 처리)
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent,//이벤트가 발생된 뷰
                                    View v,//이벤트가 발생된 차일드 뷰
                                    int position,//이벤트가 발생된 항목의 위치
                                    long id//이벤트가 발생된 뷰 id
                                    ){
                //ArrayList에서 position에 해당하는 데이터 얻어오기
                String item=list.get(position);
                //토스트로  출력하기
                Toast.makeText(MainActivity.this,
                    "선택항목:"+item,
                    Toast.LENGTH_SHORT).show();
            }
        });
       
        final EditText edt=(EditText)findViewById(R.id.edt1);


        //버튼을 눌렀을때 입력된 항목 추가하기
        btnAdd.setOnClickListener(new View.OnClickListener() {   
            @Override
            public void onClick(View v) {
                //입력된 문자열 얻어오기
                String str=edt.getText().toString();
                //입력된 값을 ArrayList에 추가하기
                list.add(str);
                //모델객체가 변경되었음을 어댑터뷰에 알리기
                adapter.notifyDataSetChanged();
                //입력된 값 지우기
                edt.setText("");
            }
        });


        btnDel.setOnClickListener(new View.OnClickListener() {   
            @Override
            public void onClick(View v) {
                //선택된 항목의 인덱스 얻어오기
                int pos=listView.getCheckedItemPosition();
                //ArrayList에서 항목 지우기
                list.remove(pos);
                //어댑터에 항목이 바뀜을 알리기
                adapter.notifyDataSetChanged();
                //선택한 항목표시 없애기
                listView.clearChoices();
            }
        });  
    }
}

+ Recent posts