시간표 어플을 만드는중인데요
시간표의 각 칸을 클릭하면 그시간에 맞는 과목 리스트가 다이얼로그로 제공됩니다.
시간표의 각 칸에 setOnEvent로 클릭시 위치에 맞는 시간을 계산해서
subjectlist리스트에 넣어줍니다.
public void setOnEvent() {
// / 월화수목금 이들어가있는 부분에는 눌러도 반응할 필요 없음
for (int i = COLS; i < COLS * ROWS; i++) {
if (i % COLS == 0)
continue;
final int k = i;
//수업이 없는 텍스트뷰는 클릭불가
if (subinfo[k].subnum != 0)
{
m_cellTextBtn[i].setOnClickListener(new Button.OnClickListener() {
public void onClick(View v)
{
textchoice = k;
int pos = subinfo[textchoice].startpos;
int num = subinfo[textchoice].subnum;
int m = 0, n = 0;
// 3개의 리스트가 있다면 3개만 채워주고 나머지는 ""값으로 채워줌
for (m = 0; m < num; m++)
{
if (m_msub[pos + m].dividedclass.length() == 0)
subjectlist[m] = m_msub[pos + m].subjectname;
else
subjectlist[m] = m_msub[pos + m].subjectname+ "("+ m_msub[pos + m].dividedclass+ ")";
Log.e("----------", "setOnClickListener"+subjectlist[m].toString());
}
for (n = m; n < 5; n++) {
subjectlist[n] = "";
}
showDialog(5);
}
});
}
}
}
이러한 subjectlist를 가지고 onCreateDialog에서 처리해주는데 다이얼로그에서 이전에 보이던 subjectlist값으로 보여줍니다.
한번더 리스트를 클릭해야 최신으로 갱신됩니다. 이 문제를 어떻게 처리해야 할지 고민입니다.
@Override
protected Dialog onCreateDialog(int id)
{
switch (id) {
case DIALOG_SINGLE_CHOICE:
return new AlertDialog.Builder(m_context)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("짝꿍 선택하기")
.setSingleChoiceItems(subjectlist, 0,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
/*
* User clicked on a radio button do some
* stuff
*/
Log.e("-------", "DIALOG_SINGLE_CHOICE");
choice = whichButton;
}
})
.setPositiveButton("예",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
/* User clicked Yes so do some stuff */
Log.e("-------", "예버튼클릭");
m_cellTextBtn[textchoice].setText(subjectlist[choice]);
}
})
.setNegativeButton("아니오",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
/* User clicked No so do some stuff */
Log.e("-------", "아니오버튼클릭");
}
}).create();
}