ListView선택한 값 Toast이용해서 보이기.
(1) activity_main.xml
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();
}
});
}
}
'Mobile > Android' 카테고리의 다른 글
#13 (ListView: 만든 layout을 ListView에 붙이기) (0) | 2013.02.02 |
---|---|
#12 (ListView: ListActivity 를 상속받아 처리하기 ) (0) | 2013.02.02 |
#10 ( ListView :리스트뷰와 데이터(모델)을 어댑터뷰(모델+레이아웃)를 이용해서 연결하기) (0) | 2013.02.02 |
#09 ( FrameLayout ) (0) | 2013.02.02 |
#08 ( layout을 만들고 연결하기) (0) | 2013.02.02 |