public class mylist extends AppCompatActivity {
static String mdbName1 = "myassign1";
static String mtablename1 = "myclass1";
static SQLiteDatabase mclassDB1 = null;
static String[] msubject1;
static String[] mday1;
ArrayList<HashMap<String, String>> mclassList1;
ListView mlist;
private static final String mTAG_SUB1 = "msubject1"; //추가용
private static final String mTAG_DAY1 = "mday1"; //추가용
Spinner sp;
ListAdapter madapter;
Button asgbtn;
HashMap<String, String> cls2 = new HashMap<String, String>();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylist);
mlist = (ListView) findViewById(R.id.lstv1);
mclassList1 = new ArrayList<HashMap<String, String>>();
// 가져온 데이터를 myDB에 넣자
Intent intent = getIntent();
String myday = (String) intent.getSerializableExtra("TAG_DAY");
String mysub = (String) intent.getSerializableExtra("TAG_SUB");
if (myday == null) {
} else {
List<String> Getday = new ArrayList<String>();
Getday.add(myday);
List<String> Getsub = new ArrayList<String>();
Getsub.add(mysub);
mday1 = new String[Getday.size()];
Getday.toArray(mday1);
msubject1 = new String[Getsub.size()];
Getsub.toArray(msubject1);
if (myday != null)
Toast.makeText(getApplicationContext(), "선택 강의:\n수업시간 : " + myday + " \n과목명: " + mysub, Toast.LENGTH_LONG).show();
}
//msubject[]는 과목명이 들어가있고
//mday[] 는 시간이 들어가있음
// 값 저장하기
try {
mclassDB1 = this.openOrCreateDatabase(mdbName1, MODE_PRIVATE, null);
mclassDB1.execSQL("CREATE TABLE IF NOT EXISTS " + mtablename1
+ " (msubject1 VARCHAR(20), mday1 VARCHAR(20) );");
//mclassDB1.execSQL("DELETE FROM " + mtablename1 ); 초기화
//새로운 데이터를 테이블에 집어넣습니다..
if (myday != null) { //null값으로 항목에 추가하는 것을 막기위함
for (int i = 0; i < msubject1.length; i++) {
mclassDB1.execSQL("INSERT INTO " + mtablename1
+ " (msubject1, mday1) Values ('" + msubject1[i] + "', '" + mday1[i] + "');");
}
}
mclassDB1.close();
} catch (SQLiteException se) {
Toast.makeText(getApplicationContext(), se.getMessage(), Toast.LENGTH_LONG).show();
Log.e("", se.getMessage());
}
showList();
asgbtn = (Button) findViewById(R.id.asgbtn);
asgbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 관리 페이지로 이동하자
Intent outintent = new Intent(getApplicationContext(), AssignMng.class);
startActivity(outintent);
}
});
}
protected void showList() {
try {
SQLiteDatabase ReadDB = this.openOrCreateDatabase(mdbName1, MODE_PRIVATE, null);
Cursor c = ReadDB.rawQuery("SELECT * FROM " + mtablename1, null);
/**○ 이 부분이 없으면 vmylistv에 정보를 그려넣을 수 없음*/
if (c != null)
if (c.moveToFirst()) {
do {//테이블에서 가져옴
String SUBJECT = c.getString(c.getColumnIndex("msubject1"));
String DAY = c.getString(c.getColumnIndex("mday1"));
HashMap<String, String> cls1 = new HashMap<String, String>();
cls1.put(mTAG_SUB1, SUBJECT);
cls1.put(mTAG_DAY1, DAY);
//어레이리스트에 추가
mclassList1.add(cls1);
} while (c.moveToNext());
}
/**○ 여기까지*/
ReadDB.close();
madapter = new SimpleAdapter(this, mclassList1, R.layout.vmylistv, new String[]{mTAG_SUB1, mTAG_DAY1}, new int[]{R.id.mtv1, R.id.mtv2});
mlist.setAdapter(madapter);
} catch (SQLiteException se) {
Toast.makeText(getApplicationContext(), se.getMessage(), Toast.LENGTH_LONG).show();
Log.e("", se.getMessage());
}
}
}
====================해당 코드의 동작=============
a라는 액티비티가 있습니다
a에서 이벤트를 통해 intent로 2가지 data를 받고(hashmap) 받은 데이터를 동일하게 이 액티비티에서
사용하기때문에 문자열과 어레이리스트를 오가는 반복후에 변수에 저장, show()를 통한 출력 입니다.
(줄여썻습니다. 딱히 필요할지 몰라서)
해당 액티비티의 db의 테이블에 저장되었습니다.
=============================================
질문하고자 하는 것은
위에서 받은 정보들을 mclassDB1의 mtablename1에 집어 넣었지 않습니까?
여기서 받은 데이터들을 (위 db의 테이블에 저장되있는 것) 다른 액티비티(C라고하겠습니다)
에서 사용하고싶습니다.
C액티비티의 스피너 아이템으로 나오게 어댑터를 연결하고 싶은데, 제가 예제만 보고 따라가는 거라
이해도가 좀 낮아서 어떻게 해야할지 여쭙습니다.
타 예제들과 달리 DBHelper도 사용되지 않아 따라할만한 예제가 없습니다
이 코딩에서는 어떻게 해결해야할까요? 도움부탁드립니다