여기서 궁금한점을 물어볼려고 합니다.
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);
}
});
}
}