- 클릭하면 true/ 클릭해지 시 false가 뜨도록 하기
<activity_main.xml>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<MainActivity.java>
package com.example.listviewtest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
String[] fruits = {"사과","딸기","바나나","포도","멜론","키위"};
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_multiple_choice, fruits);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CheckedTextView v = (CheckedTextView) view;
boolean currentCheck = v.isChecked();
String str = String.format("%s", currentCheck);
Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
}
});
}
}
- 클릭하면 클릭한 리스트 뜨게하기
ex) 딸기, 바나나 클릭 시 -> 딸기,바나나 선택
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
package com.example.listviewtest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
String[] fruits = {"사과","딸기","바나나","포도","멜론","키위"};
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_multiple_choice, fruits);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
String str =""; // 여기나두면 값 누적됨
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CheckedTextView v = (CheckedTextView) view;
boolean currentCheck = v.isChecked();
if(currentCheck == true){
str += (fruits[position]+" ");
}
else{
str = str.replace(String.format("%s ",fruits[position]), ""); // 바꾸고 String에 다시 대입
}
Toast.makeText(getApplicationContext(), str+ "선택", Toast.LENGTH_SHORT).show();
}
});
}
}
- 추가하면 터미널에서? 과정 볼 수 있음
private static final String TAG = "MainActivity";
Log.d(TAG, str);
ex)
package com.example.listviewtest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ListView listView;
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
String[] fruits = {"사과","딸기","바나나","포도","멜론","키위"};
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_multiple_choice, fruits);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
String str =""; // 여기나두면 값 누적됨
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CheckedTextView v = (CheckedTextView) view;
boolean currentCheck = v.isChecked();
if(currentCheck == true){
str += (fruits[position]+" ");
}
else{
str = str.replace(String.format("%s ",fruits[position]), ""); // 바꾸고 String에 다시 대입
}
Toast.makeText(getApplicationContext(), str+ "선택", Toast.LENGTH_SHORT).show();
Log.d(TAG, str);
}
});
}
}
- 다른 방법
ArrayList<String> data = new ArrayList<String> ();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (data.contains(fruits[position])) {
data.remove(fruits[position]);
}
else {
data.add(fruits[position]);
}
Toast.makeText(getApplicationContext(), data + " 선택", Toast.LENGTH_SHORT).show();
}
'Android' 카테고리의 다른 글
안드로이드 - 리스트 추가,수정,삭제 만들기 (0) | 2020.11.04 |
---|---|
안드로이드 - 영화 리스트 만들기 (0) | 2020.11.04 |
버튼, 라디오버튼 만들어서 클릭 시 색 변환 (0) | 2020.11.03 |
안드로이드 - Custom Dialog (0) | 2020.10.30 |
안드로이드 - 5일차 (DatePickerDialog TextClock) (0) | 2020.10.30 |