총 게시물 39,187건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

안드로이드 게시판 댓글 기능을 어떤식으로 구현을 해야할까요 ㅜㅜ

글쓴이 : 송살13 날짜 : 2018-08-27 (월) 23:02 조회 : 353
글주소 : http://www.androidside.com/B49/170300
 
  서울게임아카데미
추천게임학원, 2018년 한국 소비자만족지수 1위, 고용노동부국비지원, 수강료조회
www.seoulgame.co.kr
  임베디드 개발 마이크로비젼
임베디드 개발용역, 개발보드, 에뮬레이터.
www.mvtool.co.kr
  취업준비의시작, 잡코리아
안드로이드, 직무별 산업별 궁금한 채용정보 다 모였다! 한눈에 보는 취업정보!
www.jobkorea.co.kr
신청하기


안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang

현재 게시판 기능을 만들어서 생성한 게시판을 클릭하면 Intent로 제목,내용,날짜를 putExtra하게 되고
해당 게시물에 달린 댓글들을 보여주기 위해 PHP를 이용해서 BackgroundTask 로 댓글 리스트(onPostExecute의 result값)을 또 Intent를 사용하여 같은 액티비티를 호출하게 됩니다..그러다보니 같은 액티비티가 각 다른 내용을 갖고
실행이 됩니다.. 그래서 하나를 제목,내용,날짜만을 intent하고
해당 게시물(댓글을 작성하는 Activity)에서 onPostExecute에서 직접 댓글을 뿌려주니 댓글은 보여지긴하는데
댓글 작성을 하게 되면 댓글이 2개씩 작성되는 문제가 발생합니다...
이걸 어떻게 손봐야할까요... 대략적인 소스코드 올려봅니다..고수님들 제발 도와주세요 ㅜㅜ

이코드는 해당 게시물에서 댓글을 작성하는 Activity인데 여기서 댓글을 뿌려주고,댓글작성 후 댓글 notify되는 코드입니다..어떻게 해야할까요...
class BackgroundTask extends AsyncTask<Void, Void, String> {
String target;

@Override
protected void onPreExecute() { //Background 작업 시작전에 UI 작업을 진행 한다.
Log.d("TAG", "onPreExecute : ");
target = "http://??????????????/Board_FreeReplyList.php";
}

@Override
protected String doInBackground(Void... voids) { //Background 작업을 진행 한다.
try {
URL url = new URL(target);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String temp;
StringBuilder stringBuilder = new StringBuilder();
while ((temp = bufferedReader.readLine()) != null) {
stringBuilder.append(temp + "");

}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return stringBuilder.toString().trim();
} catch (Exception e) {
e.printStackTrace();
}

return null;
}

@Override
public void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}


@Override
public void onPostExecute(String result) { //Background 작업이 끝난 후 UI 작업을 진행 한다.
//super.onPostExecute(result);

Log.d("TAG","onPostExecute : " + a);

try {
JSONObject jsonObject = new JSONObject(result);
Log.d("TAG","getExtra replyList : " + jsonObject);
JSONArray jsonArray = jsonObject.getJSONArray("response");
int count = 0;
String REPLY,DATE;
while(count < jsonArray.length())
{
JSONObject object = jsonArray.getJSONObject(count);

REPLY = object.getString("REPLY");

DATE = object.getString("DATE");

ReplyList reply = new ReplyList(REPLY,DATE);
Log.d("TAG","getIntent : " + reply);
mReplyList.add(reply);
count++;
//mAdapter.swap(mReplyList);
}

} catch (Exception e) {
e.printStackTrace();
}
LoginActivity에서 로그인하면 MainActivity(게시판)에 게시물들을 뿌릴 때는 이렇게 사용했습니다.
class BackgroundTask extends AsyncTask<Void, Void, String> {
String target;

@Override
protected void onPreExecute() {
target = "http://?????????????/Board_FreeList.php";
}

@Override
protected String doInBackground(Void... voids) {
try {
URL url = new URL(target);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String temp;
StringBuilder stringBuilder = new StringBuilder();
while ((temp = bufferedReader.readLine()) != null) {
stringBuilder.append(temp + "");
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return stringBuilder.toString().trim();

} catch (Exception e) {
e.printStackTrace();
}
return null;
}

@Override
public void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}

@Override
public void onPostExecute(String result) {

Intent intent = new Intent(LoginAcitivy.this, MainActivity.class);
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("freeList", result);

startActivity(intent);
}
}



질문자가 자신의 포인트 8 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 6을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기