안드로이드 개발 질문/답변
(글 수 45,052)
핸들러로 Flag_int 값을 받아서 출력 해보았습니다.
처음 값 1을 받아서 출력해본 결과
핸들러 내에서 것
System.out.println("mHandler Flag_int : " + Flag_int);= 1 <- 정상 출력 되었습니다.
PagerAdapterClass 내의 것
System.out.println("Onitemclick Flag_int : " + Flag_int);=1 <-정상 출력 되었습니다.
문제는, 바로 이어서 2값을 핸들러에서 받아서 출력해본 결과
핸들러 내에서 것
System.out.println("mHandler Flag_int : " + Flag_int);= 2 <- 정상 출력 되었습니다.
PagerAdapterClass 내의 것
System.out.println("Onitemclick Flag_int : " + Flag_int);=1 <-처음 받아온 값을 출력해 버립니다.
물론 Flag_int 이놈은 전역 선언 해놔서 같은놈입니다.
어째서 이런 현상이 발생하는지, 해결 방법을 알고 싶습니다.
읽어주셔서 감사합니다.~
공지사항을 다 읽었음
public Handler mHandler = new Handler() { @Override public void handleMessage(android.os.Message msg) { switch (msg.what) { case 2: System.out.println("msg.obj : " + (String) msg.obj); testmsg = (String) msg.obj; Flag_int = msg.arg1; System.out.println("mHandler Flag_int : " + Flag_int); mPagerAdapter.notifyDataSetChanged(); break; } super.handleMessage(msg); }
public class PagerAdapterClass extends PagerAdapter { private final int TAB_MAP = 0; private final int TAB_MENU = 1; private final int TAB_INFO = 2; private LayoutInflater mInflater; Context context; ArrayList<InfoData> InfoData = new ArrayList<InfoData>(); public OrderAdapter adpOrder; public InfoAdapter adpInformation; View[] mViewList; . . . . . . else { v = mInflater.inflate(R.layout.info, null); final ListView info_list = (ListView) v .findViewById(R.id.info_list); adpInformation = new InfoAdapter(MainActivity.this, InfoData); info_list.setAdapter(adpInformation); info_list.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> a, View v, int position, long id) { System.out .println("Onitemclick Flag_int : " + Flag_int); TextView info_name = (TextView) v .findViewById(R.id.info_name); TextView info_title = (TextView) v .findViewById(R.id.info_title); Intent intent = new Intent(MainActivity.this, Info.class); for (int i = 0; i < adpInformation.getCount(); i++) { if (adpInformation.getItem(i).equals(testmsg)) { adpInformation.setItem(i, Flag_int); } } intent.putExtra("info_name", info_name.getText() .toString()); intent.putExtra("info_flag", adpInformation.getflag(position)); intent.putExtra("info_title", info_title.getText() .toString()); startActivity(intent); } });
자답입니다. 변수를 static으로 선언해 주니 해결 되었네요 ^^;