DB에는 id, title, content가 저장되어 있고,
ListView에는 title과 content가 표시됩니다.
그리고 ListView를 클릭하면 그에 맞는 id값이 다른 액티비티에 전해지게 하려고 합니다..
그 id값으로 DB에 저장된 상세 내용을 다른 액티비티에서 보여주려고 하는 것인데요..
이 id값을 전달을 못하네요..; 커서에서 부터 뭔가 잘못 한거 같습니다..ㅜ.ㅜ
output.java DB내용을 뿌려주는 ListView입니다.
---------------------------------------------------------------
package my.diary;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class output extends Activity {
DiaryDBHelper mHelper;
Cursor cursor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.diaryoutput);
mHelper = new DiaryDBHelper(this);
SQLiteDatabase db = mHelper.getWritableDatabase();
cursor = db.rawQuery("SELECT * FROM diary5", null);
startManagingCursor(cursor);
SimpleCursorAdapter Adapter = null;
Adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
cursor, new String[] { "title", "content" },
new int[] { android.R.id.text1, android.R.id.text2});
ListView list = (ListView)findViewById(R.id.ListView01);
list.setAdapter(Adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
// TODO Auto-generated method stub
Intent intent = new Intent(output.this, show.class);
intent.putExtra("data_id", cursor.getColumnIndex("id"));
startActivity(intent);
}
});
}
}
--------------------------------------------------------
show.java //전달된 값을 받아주는 곳입니다.
-----------------------------------------------
package my.diary;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class show extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content);
Intent intent = getIntent();
int id = intent.getIntExtra("data_id", 0); //전달된 값을 받음
TextView text_title = (TextView) findViewById(R.id.TextView01); //id값이 제대로 전달 되었는지 찍어주는 곳입니다.
text_title.setText(id);
}
}
---------------------------------------------
많은 고수분들의 도움 간절히 기다리고 있습니다..ㅜ.ㅜ
전체 소스도 첨부했습니다..
-------------------------------------------------답변--------------------------------------------------------
'Study' 카테고리의 다른 글
20120711_1차원 배열과 포인터 (0) | 2012.11.20 |
---|---|
20120630_Java 스터디 1일차 (0) | 2012.11.20 |
20110906_리스트뷰를 내맘대로!!(이미지+텍스트) (0) | 2012.11.20 |
20110902_나의 안드로이드 첫 작품!! (0) | 2012.11.20 |
CISC와 RISC (0) | 2012.11.20 |
혹시 show intent에서 id값이 " "나 마지막id가 표시되지 않나요???
소스를 이렇게 고쳐보세요.
Adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
cursor, new String[] { "title", "content" },
new int[] { android.R.id.text1, android.R.id.text2});
->
Adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
cursor, new String[] { "id", "title", "content" },
new int[] { android.R.id.text1, android.R.id.text2});
이렇게 하면 onItenClick()에서 현재 선택된 id, title, content를 모두 확인할 수 있을 것입니다.
그걸 넘겨주세요.