package check;
import java.util.ArrayList;
import java.util.Calendar;
import sqlite.DBManager;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import com.example.infinity_01.MainPage;
import com.example.infinity_01.R;
public class Check extends Activity {
int st = 0;
SharedPreferences preferences;
SharedPreferences.Editor preference_editor;
int todayStart = 0;
int today = 0;
int month=0;
int date=0;
SQLiteOpenHelper dbhelper;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_check);
//stresschek.db 생성
dbhelper = new DBManager(this);
db = dbhelper.getWritableDatabase();
Calendar cal = Calendar.getInstance();
today += cal.get(Calendar.YEAR);
today += cal.get(Calendar.MONTH)+1;
today += cal.get(Calendar.DATE);
month = cal.get(Calendar.MONTH)+1;
date = cal.get(Calendar.DATE);
// 프리퍼런스 읽기
preferences = getSharedPreferences("Start_2", MODE_PRIVATE);
todayStart = preferences.getInt("Start_2", 0);
ArrayList<String> arData = new ArrayList<String>();
arData.add("예상치 못했던 일 때문에 당황하는 일이 잦다");
arData.add("중요한 일들을 조절할 수 없다는 느낌을 받는다.");
arData.add("신경이 예민해지고 스트레스를 받고 있다는 느낌을 자주 경험했다.");
arData.add("자신의 개인적 문제들을 다루는 데 있어서 자신감이 없다.");
arData.add("일상이 생각대로 진행되지 않는 것 같다.");
arData.add("내가 꼭 해야 하는 일들을 처리할 수 없을 것만 같다.");
arData.add("일상생활의 짜증을 잘 다스릴 수 없다.");
arData.add("컨디션이 안좋다고 자주 느낀다.");
arData.add("내가 통제할 수 없는 일 때문에 화가 난 경험이 많다.");
arData.add("어려운 일들이 너무 많이 쌓여서 극복하지 못할 것만 같다");
// #2. Adapter 설정하기
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_checked, arData);
// #3. 리스트와 Adapter 연결하기
ListView list = (ListView) findViewById(R.id.list);
list.setAdapter(adapter);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
list.setOnItemClickListener(mItemClickListener);
Button submit = (Button) findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(todayStart != today){
ContentValues values = new ContentValues();
values.put("month", month);
values.put("date", date);
values.put("listnum", st);
db.insert("checklist", null, values);
}else if(todayStart == today){
ContentValues values = new ContentValues();
values.put("month", month);
values.put("date", date);
values.put("listnum", st);
db.update("checklist", values, "date="+date, null);
}
Context mContext = Check.this;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(LAYOUT_INFLATER_SERVICE);
LinearLayout linear = (LinearLayout) inflater.inflate(
R.layout.iconcheck,
(ViewGroup) findViewById(R.id.iconcheck));
AlertDialog.Builder builder = new AlertDialog.Builder(
Check.this);
AlertDialog dialog;
builder.setView(linear);
dialog = builder.create();
dialog.setTitle("스티커 고르기");
linear.findViewById(R.id.green).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Check.this,MainPage.class);
if(todayStart == today){
intent.putExtra("flag", 2);
setResult(RESULT_FIRST_USER, intent);
}else if(todayStart != today){
preferences = getSharedPreferences("Start_2", MODE_PRIVATE);
startActivity(intent);
}
finish();
}
});
linear.findViewById(R.id.red).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Check.this,MainPage.class);
if(todayStart == today){
intent.putExtra("flag", 1);
setResult(RESULT_FIRST_USER, intent);
}else if(todayStart != today){
// 프리퍼런스 저장
preferences = getSharedPreferences("Start_2", MODE_PRIVATE);
startActivity(intent);
}
finish();
}
});
dialog.show();
}
});
}
AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
@SuppressWarnings("rawtypes")
@Override
public void onItemClick(AdapterView parent, View view, int position,
long id) {
// TODO Auto-generated method stub
st+=1;
// 입력 정보를 가지고 있는 객체를 생성
//Toast.makeText(Check.this, "오늘 날짜 "+today, Toast.LENGTH_LONG).show();
}
};
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
outState.putInt("Start_2", MODE_PRIVATE);
}
}
linear라는 다이얼로그에 green, red라는 스티커를 놓고
스티커를 클릭하면 달력에 스티커가 붙어야 하는데
지금 소스로는 스티커를 클릭해도 바로 뜨지 않고 한번 더 클릭해야 스티커가 붙고 스티커가 붙은 상태도 저장되지 않습니다
이 부분을 수정하려고 하는데 어떻게 해야 할까요?