CursorAdapter를 이용한 listview에서 setOnItemClickListener로 클릭한 데이터의 정보 불러오기
조회수 2022회
db를 만들었고 cursorAdapter를 이용해서 listview에 뿌려줬습니다. 여기에서 listview에서 항목을 클릭하면, 해당 db의 정보를 보여주게 하고 싶습니다. 겉부분은 만들었는데 안쪽의 코드를 어떻게 작성해야 할지 모르겠습니다. 해당 row의 포지션 값을 가지고 와서 하면 된다? 뭐 이런 내용은 봤는데 자세한 부분을 잘 모르겠습니다. 어떻게 해야 할까요?
이 코드는 listview가 있는 액티비티의 코드입니다.
public class DesignListActivity extends Activity {
DatabaseOpenHelper mHelper;
static SQLiteDatabase db;
static Cursor cursor;
static MyCursorAdapter myCursorAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_design_list);
//데이터베이스에 등록된 설계도 목록을 리스트뷰로 보이게 하기
final ListView designListView = findViewById(R.id.designListView);
mHelper = new DatabaseOpenHelper(this, "DESIGN.db", null, 1);
db = mHelper.getWritableDatabase();
cursor = db.rawQuery(qureySelectAll, null);
myCursorAdapter = new MyCursorAdapter(this, cursor);
designListView.setAdapter(myCursorAdapter);
designListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(DesignListActivity.this, DesignInfoActivity.class);
// 모르겠는 부분!
//
intent.putExtra("id", id);
startActivityForResult(intent, 0);
}
});
// 뒤로 버튼 클릭 시 이벤트(메인화면으로 돌아감)
Button backToMain2 = findViewById(R.id.backToMain2);
backToMain2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
아래 코드는 커서어댑터입니다.
class MyCursorAdapter extends CursorAdapter {
@SuppressWarnings("deprcation")
public MyCursorAdapter(Context context, Cursor c) {
super(context, c);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView designCodeList = view.findViewById(R.id.designCodeList);
TextView metalSheetTypeList = view.findViewById(R.id.metalSheetTypeList);
TextView hittingTimesList = view.findViewById(R.id.hittingTimesList);
TextView moldNumberList = view.findViewById(R.id.moldNumberList);
TextView hittingTimeList = view.findViewById(R.id.hittingTimeList);
TextView numberList = view.findViewById(R.id.numberList);
String numberlist = cursor.getString(0);
String designcode = cursor.getString(1);
String metalsheettype = cursor.getString(2);
String hittingtimes = cursor.getString(3);
String moldnumber = cursor.getString(30);
String hittingtime = cursor.getString(31);
numberList.setText(numberlist);
designCodeList.setText(designcode);
metalSheetTypeList.setText(metalsheettype);
hittingTimesList.setText(hittingtime);
moldNumberList.setText(moldnumber);
hittingTimeList.setText(hittingtimes);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.design, parent, false);
return view;
}
}
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력