1)activity_main
2)
package kr.android.s25listviewdemo03;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ArrayList<String> items;
ArrayAdapter<String> adapter;
ListView list;
EditText edit;
Button add,delete;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//데이터 저장소 생성
items = new ArrayList<String>();
items.add("First");
items.add("Second");
items.add("Third");
//ArrayAdapter 생성
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_single_choice, items);
list=(ListView)findViewById(R.id.list);
//ListView에 ArrayAdapter 등록
list.setAdapter(adapter);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
edit = (EditText)findViewById(R.id.newitem);
add = (Button)findViewById(R.id.add);
delete = (Button)findViewById(R.id.delete);
}
public void onClick(View view) {
switch (view.getId()){
case R.id.add:
String text = edit.getText().toString();
if(text.length()>0){
//데이터를 ArrayList에 저장
items.add(0,text);
//신규 데이터가 보여지도록 ListView 갱신
adapter.notifyDataSetChanged();
//EditText 초기화
edit.setText("");
}
break;
case R.id.delete:
int id = list.getCheckedItemPosition();
if(id != ListView.INVALID_POSITION){//정상적으로 삭제할 데이터를 선택한 경우
//지정한 데이터의 위치값을 이용해서 ArrayList(items)의 데이터를 삭제
items.remove(id);
//radio 초기화
list.clearChoices();
//변경된 데이터를 ListView에 반영하기 위해 ListView 갱신
adapter.notifyDataSetChanged();
}
}
}
}
3) 실행
반응형
'IT > Android Studio' 카테고리의 다른 글
s33ViewFilpperDemo 갤러리 다음사진 보기 (0) | 2020.07.03 |
---|---|
Android Studio s26ListViewDemo04 (삭제 기능 ) (0) | 2020.07.02 |
Android Studio s24ListViewDemo02 (ArrayList을 이용한 ListView) (0) | 2020.07.02 |
Android Studio s23ListViewDemo01 (배열을 이용한 ListView) (0) | 2020.07.02 |
Android Studio s19ScrollViewDemo (0) | 2020.07.01 |