* ListActivity 내 Adapter 를 다른 Activity에서 접근하지 못하는 문제.
해결 방법 : BroadcastReceiver 이용. Action을 주어 send 하면 리시버에서 받아서 액션 수행
1. 타 액티비티
Button btnSave = (Button) addDial.findViewById(R.id.add_ok);
btnSave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String wordData = wordInput.getText().toString();
String wordmeanData = wordmeanInput.getText().toString();
String wordSetDate = getDate();
WordSmart wordInfo = new WordSmart();
if ((wordData != null) || (wordmeanData != null)) {
if (wordData != null) {
wordInfo.setWord(wordData);
}
if (wordmeanData != null) {
wordInfo.setMeaning(wordmeanData);
}
wordInfo.setRegdate(wordSetDate);
DBManager.getInstance(getApplicationContext()).saveWordSmart(wordInfo);
}
addDial.dismiss();
sendBroadcast(new Intent(Constants.ACTION_ADD_WORDS));
}
});
2. 리스트 액티비티에서 받을 시
public class WordSmartActivity extends ListActivity {
/** tab 액티비티에서 저장한 액션을 받아 리스트를 업데이트 하기 위한 브로드캐스트 */
BroadcastReceiver br;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate!!");
.....................
}
public void setBroadCastReceiver(){
/* 탭액티비티상에서 단어장에 단어를 저장 했을때 리스트를 업데이트 하기 위해 브로드 캐스트 사용. */
br = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
/* 단어 추가 액션 */
if(Constants.ACTION_ADD_WORDS.equals(action)){
Log.i(TAG,"update word list");
ArrayList<WordSmart> m_orders = DBManager.getInstance(getApplicationContext()).getWordSmartList();
// DBManager.getInstance(getApplicationContext());
if(m_adapter!=null){
m_adapter.clear();
m_adapter = null;
}
if(m_adapter==null){
m_adapter = new setWordListAdapter(WordSmartActivity.this, R.layout.word_row, m_orders);
// m_adapter.notifyDataSetChanged();
// setListAdapter(m_adapter);
wordlist.setAdapter(m_adapter);
wordlist.setSelection(m_orders.size()-1);
}
}
'Android' 카테고리의 다른 글
[SimpleDateFormat/DateUtils] 시간정보 포맷 (0) | 2011.01.24 |
---|---|
[ArrayAdapter]Adapter에 카운트가 정상적으로 되지 않아 제대로 그려지지 않는 현상 (0) | 2011.01.24 |
[Calendar] 현재시간 가져오기 (0) | 2011.01.24 |
[TextView] 텍스트 뷰 스트링 가져오기 (0) | 2011.01.24 |
[Thead]자동저장 스레드 (0) | 2011.01.24 |