일단 필요 할 것 같은 코딩 올립니다
<send intent activity>
ArrayList<HashMap<String, String>> classList;
ListView list;
private static final String TAG_SUB = "subject";
private static final String TAG_DAY = "day";
ListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = (ListView) findViewById(R.id.lstv);
classList = new ArrayList<HashMap<String, String>>();
//중략// :hash맵에 들어갈 데이터를 db로 처리하는 부분입니다
protected void showList() {
try {
SQLiteDatabase ReadDB = this.openOrCreateDatabase(dbName, MODE_PRIVATE, null);
Cursor c = ReadDB.rawQuery("SELECT * FROM " + tablename, null);
if (c != null) {
if (c.moveToFirst()) {
do {//테이블에서 가져옴
String SUBJECT = c.getString(c.getColumnIndex("subject"));
String DAY = c.getString(c.getColumnIndex("day"));
HashMap<String, String> cls = new HashMap<String, String>();
cls.put(TAG_SUB, SUBJECT);
cls.put(TAG_DAY, DAY);
//어레이리스트에 추가
classList.add(cls);
} while (c.moveToNext());
}
}
ReadDB.close();
adapter = new SimpleAdapter(this, classList, R.layout.lstv, new String[]{TAG_SUB, TAG_DAY}, new int[]{R.id.tv1, R.id.tv2});
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int i, long l) {
HashMap<String, String> cls =(HashMap<String, String>)parent.getItemAtPosition(i);
Intent intent = new Intent(getApplicationContext(), mylist.class);
intent.putExtra("cls", classList.get(i).get("TAG_SUB"));
startActivity(intent);
}
});
==========================================================
(받는 액티비티 )
public class mylist extends AppCompatActivity{
ArrayList<HashMap<String, String>> classList;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
HashMap<String,String> getMap = new HashMap<String, String>();
getMap = (HashMap<String, String>)intent.getSerializableExtra("cls") ;
getMap = (HashMap) classList.get(0);
Toast.makeText(getApplicationContext(), (CharSequence) getMap, Toast.LENGTH_SHORT).show();
}
}
동작(원하는동작)
DB - > HashMap으로 받고 -> 리스트뷰에 뿌려줍니다
그리고 리스트뷰에서 ex) 선형대수학 수1 이렇게 아이템이 나오고 그걸 누르면
저 "선형대수학" "수1" 이라는 값을 다른액티비티로 보내고 그 값을 그대로
Toast, textview등에 받아졌는지 보이고 싶습니다.
여기저기 찾아보면서 보내는 쪽에서는 저렇게 보내는게 맞는 것 같은데,
getintent해서 받아지는지도 의문이구, 저 Toast만 없으면 일단 어플이 실행이 되긴합니다.
hash맵에 대해서 무지한 상태로 보고 따라하는 식으로 하는거라 어려움이 많습니다 개념도 없구요 ㅜㅜ
도움부탁드립니다