ArrayList<ExamData> data_list =
new
ArrayList<ExamData>();
m_adapter =
new
ExamAdapter(data_list);
m_list = (ListView) findViewById(R.id.var_list);
m_list.setAdapter(m_adapter);
m_date_format =
new
SimpleDateFormat(
"yyyy/MM/dd"
, Locale.KOREA);
m_time_format =
new
SimpleDateFormat(
"HH:mm:ss"
, Locale.KOREA);
Log.d(
"onCreate"
,
"내용출력하기"
);
m_list.post(
new
Runnable() {
@Override
public
void
run() {
Log.d(
"listview post"
,
"post"
);
m_list.setSelection(m_adapter.getCount() -
1
);
}
});
ExamData data =
null
;
ExamData data2 =
null
;
dbHelper =
new
DBHelper(
this
, dbName,
null
, dbVersion);
db = dbHelper.getReadableDatabase();
sql =
"SELECT * FROM student;"
;
Cursor cursor = db.rawQuery(sql,
null
);
String dbDate1 =
null
;
String dbDate2 =
null
;
if
(cursor.getCount() >
0
)
{
Log.d(
"메세지 총 갯수: "
,
""
+ cursor.getCount() +
"개"
);
while
(cursor.moveToNext()) {
Log.d(
"조회결과: "
, String.format(
"\n넘버: = %s ,이름: = %s, 메시지: = %s , 날짜: = %s , 시간: = %s"
,
cursor.getString(
0
), cursor.getString(
1
), cursor.getString(
2
),
cursor.getString(
3
), cursor.getString(
4
)));
dbDate1 = cursor.getString(
3
);
if
(!dbDate1.equals(dbDate2)) {
Log.d(
"바뀐 날짜 출력하기"
, dbDate1);
data2 =
new
ExamData((
int
)
1
, cursor.getString(
3
),
null
,
null
);
m_adapter.add(data2);
}
dbDate2 = dbDate1;
if
(dbDate1.equals(dbDate2)) {
Log.d(
"date"
,
"date1 = date2"
);
}
data =
new
ExamData((
int
)
0
, cursor.getString(
1
),
cursor.getString(
2
), cursor.getString(
4
));
m_adapter.add(data);
}
}
else
{
null_text.setVisibility(View.VISIBLE);
Log.d(
"onCreate조회결과가없습니다"
,
"onCreate조회결과가없습니다."
);
}
cursor.close();
m_list.smoothScrollToPosition(m_adapter.getCount() -
1
);
mNotificationManager = (NotificationManager)
this
.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancelAll();
m_list.setOnItemLongClickListener(
new
OnItemLongClickListener() {
@Override
public
boolean
onItemLongClick(AdapterView<?> parent, View view,
int
position,
long
id) {
delete_dialog(position);
return
true
;
}
});
}
public
void
delete_dialog(
final
int
position)
{
AlertDialog.Builder alert =
new
AlertDialog.Builder(MainActivity.
this
);
alert.setPositiveButton(
"예"
,
new
DialogInterface.OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which)
{
Toast.makeText(getApplicationContext(),
"예"
,
1000
).show();
db = dbHelper.getWritableDatabase();
Log.d(
"position값"
,position+
""
);
sql =
"DELETE FROM student WHERE num ='"
+ position +
"';"
;
db.execSQL(sql);
;
}
});
alert.setNegativeButton(
"아니오"
,
new
DialogInterface.OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which) {
Toast.makeText(getApplicationContext(),
"아니오"
,
1000
).show();
dialog.dismiss();
}
});
alert.setMessage(
"이 메세지를 삭제하시겠습니까?"
);
alert.setTitle(position+
"번째 메세지 삭제"
);
alert.show();
}
public
static
class
ExamData {
public
int
type =
0
;
public
String data0 =
null
;
public
String data1 =
null
;
public
String data2 =
null
;
public
ExamData(
int
parm_type, String parm_data0, String parm_data1,
String parm_data2) {
type = parm_type;
data0 = parm_data0;
data1 = parm_data1;
data2 = parm_data2;
}
}
private
class
ExamAdapter
extends
BaseAdapter {
private
LayoutInflater m_inflater =
null
;
public
ExamAdapter(ArrayList<ExamData> items) {
m_data_list = items;
m_inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public
void
add(ExamData parm_data) {
m_data_list.add(parm_data);
notifyDataSetChanged();
}
@Override
public
int
getCount() {
return
m_data_list.size();
}
@Override
public
ExamData getItem(
int
position) {
return
m_data_list.get(position);
}
@Override
public
long
getItemId(
int
position) {
return
position;
}
@Override
public
int
getItemViewType(
int
position) {
return
m_data_list.get(position).type;
}
@Override
public
int
getViewTypeCount() {
return
2
;
}
public
View getView(
int
position, View convertView, ViewGroup parent) {
View view =
null
;
int
type = getItemViewType(position);
if
(convertView ==
null
) {
view = m_inflater.inflate(R.layout.list_item1,
null
);
switch
(type)
{
case
0
:
view = m_inflater.inflate(R.layout.list_item1,
null
);
break
;
case
1
:
view = m_inflater.inflate(R.layout.list_item3,
null
);
break
;
}
}
else
{
view = convertView;
}
ExamData data = m_data_list.get(position);
if
(data !=
null
)
{
if
(type ==
0
)
{
TextView user_tv =
null
, msg_tv =
null
, date_tv =
null
;
user_tv = (TextView) view.findViewById(R.id.user_view1);
msg_tv = (TextView) view.findViewById(R.id.message_view1);
date_tv = (TextView) view.findViewById(R.id.date_view1);
user_tv.setText(data.data0);
msg_tv.setText(data.data1);
date_tv.setText(data.data2);
}
else
if
(type ==
1
)
{
((TextView) view).setText(data.data0);
}
Log.d(
"getview"
,
"getview!"
);
}
return
view;
}
}