안드로이드 서버에서 넘겨받은 데이터 다른 액티비티로 넘기기
조회수 849회
개발도구 : 안드로이드 스튜디오, 카페24서버(DB), php, MySql
게시판을 만들고있습니다. 현재 DB에 저장 된 게시글들의 제목을 리스트뷰로 표현하는것 까지 했습니다. 이제 제목이 적힌 리스트뷰를 클릭하면 다른 액티비티로 넘어가며 제목/작성자/날짜/내용 이렇게 나오는걸 구현중입니다.
BackgroundTask2중 onPostExecute의 내용입니다.
@Override
protected void onPostExecute(String result) {
try {
JSONObject jsonObject = new JSONObject(result);
JSONArray jsonArray = jsonObject.getJSONArray("response");
int count = 0;
String POST_TITLE, POST_USER, POST_TS , POST_CONTENT;
while(count < jsonArray.length()) {
JSONObject object = jsonArray.getJSONObject(count);
POST_TITLE = object.getString("POST_TITLE");
POST_USER = object.getString("POST_USER");
POST_TS = object.getString("POST_TS");
POST_CONTENT = object.getString("POST_CONTENT");
BoardSelect boardSelect = new BoardSelect(POST_TITLE, POST_USER, POST_TS, POST_CONTENT);
boardSelectList.add(boardSelect);
count++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
위 코드가 리스트뷰를 클릭하면 가져올 DB의 데이터들입니다. Sysout으로 찍으니 데이터가 차곡차곡 잘 들어오더라구요. 이렇게 가져오는것까진 했는데 이대로 intent를 넘기면 DB에 있는 모든 내용이 같이 넘어가지더군요. 리스트뷰를 클릭하면 해당 리스트뷰의 데이터들만 따로 뽑아서 액티비티에 뿌려주는걸 어떻게 구현해야할지 모르겠습니다.
//글 조회
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(MainActivity.this, SelectActivity.class);
new BackgroundTask2().execute();
}
});
제 생각엔 리스트뷰를 클릭했을 때 position으로 뭘 어떻게하면 될거같은데... 구글링으로 이것저것 해봐도 안 돼서 질문 올립니다...
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
리스트뷰에 넘겨준 DB의 데이터 리스트에서 클릭된 리스트뷰의 position에 맞는 데이터만 추출하시면 됩니다.
- 제가 적은 코드처럼 setOnItemClickListener에 BackgroundTask2 넣어서 데이터를 넘겨주는건 맞나요? 알 수 없는 사용자 2020.4.20 16:18
- 방법이야 여러가지입니다만 지금 코드를 보면 클릭시 DB에 저장된 모든 데이터를 불러오는 것으로 보입니다. 그러지 말고 아이템 클릭시 해당 아이템의 제목에 해당하는 내용들만 DB에서 가져와서 처리하세요. 주동혁 2020.4.21 09:54
-
POST_TITLE = object.getString("POST_TITLE"); POST_USER = object.getString("POST_USER"); POST_TS = object.getString("POST_TS"); POST_CONTENT = object.getString("POST_CONTENT");
이부분을 하나씩 String으로 받지말고 그냥 배열에 집어 넣으면 됩니다
ArrayList<String> POST_TITLE = new ArrayList<>(); POST_TITLE.add(object.getString("POST_TITLE")
이런식으로 배열을 만들어서 집어 넣어주면
//글 조회 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(MainActivity.this, SelectActivity.class); //리스트 포지션 = 배열 포지션 intent.putExtra("POST_TITLE",POST_TITLE.get(position)); //이런식으로 하면 클릭된 위치에 있는 제목이 넘어가겠죠? new BackgroundTask2().execute(); } });
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력