마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

custom listview checkbox sqlite DB연동 질문

0 추천

여기서 궁금한점을 물어볼려고 합니다.

1. Custum listVIew 에서 SQLite + ArrayAdapter 를 이용해서 구현하고 싶습니다.

2. Custum listVIew item 체크박스를 클릭후 삭제하는 이벤트를 구현하고 싶습니다.

3. Custum listVIew item 체크박스를 클릭하면 item에 대한 내용을 ArrayList 배열로 받고 싶습니다.

 

WearingActivity.java

package com.hcnc.slime_lot;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

public class WearingActivity extends Activity {

    private List<String> data;

    // 현재시간을 msec 으로 구한다.
    long now = System.currentTimeMillis();
    // 현재시간을 date 변수에 저장한다.
    Date date = new Date(now);
    // 시간을 나타냇 포맷을 정한다 ( yyyy/MM/dd 같은 형태로 변형 가능 )
    SimpleDateFormat sdfNow = new SimpleDateFormat("yyyy/MM/dd  aahh:mm  EE요일", Locale.KOREA);
    // nowDate 변수에 값을 저장한다.
    String formatDate = sdfNow.format(date);

    TextView dateNow;
    ImageButton backBtn;

    ArrayList<String> mDatas= new ArrayList<String>();
    ListView listView;

    @Override
    public void onBackPressed() {
        //super.onBackPressed();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wearing);

        dateNow = (TextView) findViewById(R.id.dateNow);
        dateNow.setText(formatDate);    // TextView 에 현재 시간 문자열 할당

        backBtn = (ImageButton) findViewById(R.id.back);

        data = new ArrayList<>();

        final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(WearingActivity.this, android.R.layout.simple_list_item_1, data );
        ListView listView = findViewById(R.id.listview_wearing);

        listView.setAdapter(arrayAdapter);

        findViewById(R.id.add_wearing).setOnClickListener(new ImageButton.OnClickListener() {
            @Override
            public void onClick(View v) {
                int dataNo = data.size() + 1;
                data.add("데이터 " + dataNo);
                arrayAdapter.notifyDataSetChanged();
            }
        });

        findViewById(R.id.delete_wearing).setOnClickListener(new ImageButton.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (data.size() > 0){
                   data.remove(data.size() - 1);
                } else {
                    Toast.makeText(WearingActivity.this, "더 이상 삭제할 데이터가 없습니다.", Toast.LENGTH_SHORT);
                }
                arrayAdapter.notifyDataSetChanged();
            }
        });

        backBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(WearingActivity.this, MainActivity.class);
                startActivity(intent);
            }
        });


    }
}

 

천상리야옹이 (120 포인트) 님이 2020년 10월 12일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...