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

커스텀 리스트뷰 업데이트

0 추천

그냥 값을 넣으면 업데이트가 잘 실행되는데 

db수정후 다시뿌려주면 업데이트가 되지 않습니다.

저기 보이는 38분이 사라지고 42분만 보여야하는데 db로 뿌려주는건 업데이트가안되고 직접참조해서 뿌려주는건 업데이트가 되는데 이유가뭘까요?

 

코드좀 한번 봐주시면 감사하겠습니다.

private void viewRe(){
		listView= (ListView)findViewById(R.id.List_row); // 리스트뷰 연결
		CustomAdapter customAdapter = new CustomAdapter(this, CustomMemoList);	// 커스텀 어댑터 생성자로 레이아웃 전개
		listView.setAdapter(customAdapter); // 리스트뷰에 삽입
	}
private void viewDB2(){
		String sql;
		

		sql = "select * from " + TABLE_NAME;
		
		Cursor cursor = db.rawQuery(sql, null);
		
		while (true) {
			if(!cursor.moveToNext()){
				cursor.close();
				return;

			}
			int id = cursor.getInt(0);
			String name  = cursor.getString(1);
			String memo = cursor.getString(2);
			String day = cursor.getString(3);
			String image = cursor.getString(4);
			String mayday = cursor.getString(5);
			Log.i("mPath", image);
			//text.setText(id + name + memo + day);
			
			data = new GetSet(id, name, memo, image, day, mayday);
			

		}
		
		
	}

String sql2 = "update "+ TABLE_NAME + " set mayday= '"+ "" +"'";
db.execSQL(sql2);
 
String timeset = hourOfDay + "시 "+ minute +"분 알람";
 
String sql = "update " + TABLE_NAME + " set mayday='"+ timeset +"' where _id=" + id3;
 
db.execSQL(sql);
viewDB2(); //분명 sql구문을 전부 공백으로 준뒤 값을 넣었는데 값하나가 없어지지않습니다. 여기서 갱신이 안됩니다.
viewRe();
 
// TODO Auto-generated method stub
 
int timeToAlramhour = hourA - hourOfDay;
int timeToAlramMin = minuteA-minute;
 
if(timeToAlramhour >=1){
timeToAlramhour = 24-timeToAlramhour;
}else{
timeToAlramhour = timeToAlramhour*-1;
}
 
 
 
if(timeToAlramMin >=1){
timeToAlramMin = 60-timeToAlramMin;
}else{
timeToAlramMin = timeToAlramMin*-1;
}
 
int timeToplus = (timeToAlramhour*60) + timeToAlramMin;
int timeX = timeToplus*60; // 시간 결과물 출력
 
 
Log.i("시간", String.valueOf(timeToAlramhour));
Log.i("분", String.valueOf(timeToAlramMin));
 
String hourS = String.valueOf(hourOfDay);
String minuteS = String.valueOf(minute);
Toast.makeText(view.getContext(),hourS+ "시 "+ minuteS +"분 알람", 0).show();
if(getSetpre != null){
getSetpre.mayday="";
}
 
getSetpre = getSetnext;
 
 
getSetnext.mayday=timeset;
viewRe();
 
view.postDelayed(new Runnable() {
 
@Override
public void run() {
Notification noti = new Notification.Builder(MemoMenu.this)
.setTicker("알람")
.setContentTitle(NameNoti)
.setContentText(MemoNoti)
.setContentIntent(content)
.setLargeIcon(BitmapFactory.decodeFile(imgnoti))
.setSmallIcon(android.R.drawable.stat_notify_call_mute)
.build();
 
mNotificationManager.notify(NAPNOTI, noti);
 
// TODO Auto-generated method stub
 
}
}, 1*1000); // 시간설정 timeX
 
}
};
 
신참개발자 (380 포인트) 님이 2015년 3월 29일 질문

1개의 답변

0 추천
코드는 보지 않았지만 간단하게 생각을 한점을 조언드립니다.

DB는 메인스레드가 아니고 직접 참조하여 set해주는 부분은 메인스레드(UI 스레드) 일 것입니다.

어싱크 타스크의 익스큐트쪽에 DB정보를 넘겨주어 처리해 보십시요.
쭈쭈총각 (17,750 포인트) 님이 2015년 4월 3일 답변
...