마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

viewpager에서 asynctask 사용하는데 첫화면에서 asynctask변경내역을 못가져와요ㅠㅠ

0 추천

viewpager로 구현하였구요 어댑터는 pageradapter를 사용하였습니다.

@Override
public Object instantiateItem(View pager, int position) {   //viewPager에서 사용할 뷰객체 생성 및 등록

    Log.i("TAG", Calcontent.get(Calendar.YEAR) + "," + Calcontent.get(Calendar.MONTH) + "&" + calsdf.format(Calcontent.getTime()));

    Log.i("TAG", "instantiateItem" + position);
    view = mInflater.inflate(R.layout.admin_cal_nowm, null);     //xml을 뷰로 연결, 뷰 안에 있는 자식을 사용하기 위해 view 별도 선언

        table = (TableLayout) view.findViewById(R.id.tablefragtest);

    TableRow row = new TableRow(MainActivity.this);   //여기서 동적추가는 정상적으로 이루어짐
    TextView tx = new TextView(getApplicationContext());
    tx.setText("예시");
    row.addView(tx);
    row.setBackgroundColor(Color.GRAY);
    table.addView(row);
.....
    //데이터 파싱부분입니다
    CalenderData dataParse = new CalenderData();
    Log.i("TAG", "파싱하는 데이트" + calsdf.format(cal.getTime()).toString());
    dataParse.execute("NAME", calsdf.format(cal.getTime()).toString(), calsdf.format(beforeMonth.getTime()).toString(), "");           //현재날짜기준 쿼리*/


       ((ViewPager) pager).addView(view, null);
    return view;
}
public class CalenderData extends AsyncTask<String, String, String> {

 

코드는 대략 이렇게 구성되어 있는데요

1.  instantiateItem 안에 넣었을 때 로그값은 제대로 데이터 파싱이 되는데 XML에 덧붙여지지가 않네요...

2. 처음 뷰페이저의 10번 페이지에서 실행을 하게 되면 9,10번 페이지는 XML에 화면이 변환이 안되는데 11번부터는 변환이 되어있습니다.

3. 또한 보통 11번 페이지를 접근하게 되면 10,12번 페이지가 먼저 로드되어있어야 맞는 것인데, 데이터는 로드가 되는데, XML은 이동하는 방향의 페이지(11번에서 12번으로 스와이프를 한다면 12번으로 이동 후 13번 페이지만 생성)로만 로드가 됩니다.

이유 혹은 해결 방법이 있을까요?

*일단 가장 큰 어려움은 첫 화면에 데이터 파싱된 후 수정되는 화면 영역이 수정되지 않습니다

sj6071 (620 포인트) 님이 2017년 11월 1일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...