다음 코드를 사용하면 목록의 항목을 선택하면 데이터 표가 업데이트됩니다. 문제는 여러 항목이 나열되어있는 경우에 관계없이 선택한 항목이 아닌 첫 번째 나열된 항목을 항상 업데이트합니다. 미리 감사드립니다!목록보기에서 OnItemClick이 제대로 작동하지 않습니다.
편집 됨 - 업데이트 됨. Incorporated (위치)와 약간의 코드를 단순화하려고했습니다. 여전히 선택한 항목을 캡처하지 않고 항상 목록보기에 표시되는 최상위 항목을 반환합니다. DB를 컨트롤러가
setContentView(R.layout.list_messages);
ArrayList<HashMap<String, String>> phraseList = controller
.getUnreadMessage();
ListView lv = getListView();
ListAdapter adapter = new SimpleAdapter(
ReadUnReadMessages.this,
phraseList,
R.layout.view_list_messages,
new String[] { "mFromName", "mToAddress", "mBody",
"mToName", "messageTime", "mFromAddress", "mRead",
"messageId" },
new int[] { R.id.messageFrom, R.id.messageToAdd,
R.id.messageBody, R.id.messageTo, R.id.messageTime,
R.id.messageFromAdd, R.id.readCode, R.id.messageId });
setListAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long arg) {
@SuppressWarnings("unchecked")
HashMap<String, String> queryValues = (HashMap<String, String>)parent.getItemAtPosition(position);
messageBody = (TextView) findViewById(R.id.messageBody);
readCode = (TextView) findViewById(R.id.readCode);
messageId = (TextView) findViewById(R.id.messageId);
String readCode = "1";
queryValues
.put("messageId", messageId.getText().toString());
queryValues.put("mRead", readCode);
queryValues.put("mBody", messageBody.getText().toString());
controller.markMessage(queryValues);
this.callSplash(view);
}
public void callSplash(View view) {
Intent objSplash = new Intent(getApplicationContext(),
Splash.class);
startActivity(objSplash);
}
});
우리는 psychics가 아니며,'insertData()'와'callSplash (view)'는 무엇입니까? – Simas
저는 앞으로 가서 insertData에 자신의 위치를 어떻게 든 포함시키는 것에 대한 대답을 알려 드리겠습니다. 이 시점에서 아이템을 구별 할 수있는 유일한 방법 인 onItemClick에서 자신의 직위를 사용하지 않습니다. – zgc7009
SimpleListAdapter를 작성 했습니까? – Darpan