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

ViewPager 사용에대해서 질문입니다.

0 추천

현재 이미지를 배열로받아와서 백그라운드의 이미지 변경으로 화면전환을 하고 있습니다.

근대 현재 이미지가 아닌 텍스를 받아와서 할려고 합니다.


텍스트1
텍스트2

디비에서 값을 불러와 텍스트에 뿌려주고 다음 화면 전환시 다음의 디비값을 불러와서 보여주려고 하는데

힘드네요,.


 

 

 

 

public class ExamAct_2012_3 extends Activity {
 private final int COUNT = 10; // 아이템 갯수
 private int mPrevPosition; // 이전에 선택되었던 포지션 값

 private ViewPager mPager; // 뷰 페이저
 private LinearLayout mPageMark; // 현재 몇 페이지 인지 나타내는 뷰
 Cursor cursor;
 int i;
 // 아이템의 배경화면 색상. 아이템을 구분하기 위해.

 private Button nextButton;
 private TextView questionText;
 private TextView answerText;
 private ImageView image;
 private int imageIndex;

 private int[] GalImages = new int[] { R.drawable.a1, R.drawable.a2,
   R.drawable.a3, R.drawable.a4, R.drawable.a5, R.drawable.a6,
   R.drawable.a7, R.drawable.a8, R.drawable.a9, R.drawable.a10  };

 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.exam_2012_3);

  nextButton = (Button) findViewById(R.id.button1);
  questionText = (TextView) findViewById(R.id.textView1);
  answerText = (TextView) findViewById(R.id.textView2);

  image = (ImageView) findViewById(R.id.imageView1);
  image.setVisibility(View.GONE);

  mPageMark = (LinearLayout) findViewById(R.id.layout2012_3); // 상단의 현재

  mPager = (ViewPager) findViewById(R.id.view_pager); // 뷰 페이저
  mPager.setAdapter(new BkPagerAdapter(getApplicationContext()));// PagerAdapter로
                  // 설정
  mPager.setCurrentItem(COUNT); // 무한 스크롤 하기 위해서는 아이템을 3배로 가지고 있고 그 중 가운데
          // 범위의 아이템만 보이게 한다
  mPager.setOnPageChangeListener(new OnPageChangeListener() { // 아이템이

   @Override
   public void onPageScrolled(int position, float positionOffest,
     int positionOffsetPixels) {
   }

   @Override
   public void onPageScrollStateChanged(int state) {
   }
  });

  initPageMark(); // 현재 페이지 표시하는 뷰 초기화
 }
 private void initPageMark() {
  /*
   * for (int i = 0; i < COUNT; i++) { ImageView iv = new
   * ImageView(getApplicationContext()); // 페이지 표시 이미지 // 뷰 생성
   * iv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
   * LayoutParams.WRAP_CONTENT));
   *
   * // 첫 페이지 표시 이미지 이면 선택된 이미지로 if (i == 0)
   * iv.setBackgroundResource(R.drawable.page_select); else // 나머지는 선택안된
   * 이미지로 iv.setBackgroundResource(R.drawable.page_not);
   *
   * // LinearLayout에 추가 mPageMark.addView(iv); } mPrevPosition = 0; // 이전
   * 포지션 값 초기화
   */}

 // Pager 아답터 구현
 private class BkPagerAdapter extends PagerAdapter {
  private Context mContext;

  public BkPagerAdapter(Context con) {
   super();
   mContext = con;
  }

  @Override
  public int getCount() {
   return COUNT * 3;
  }
  @Override
  public Object instantiateItem(View pager, int position) {
   SQLiteDatabase db;
   db = openOrCreateDatabase("dbTest.db", MODE_PRIVATE, null);

   db.execSQL("drop table if exists test"); // test란 테이블이있으면 드롭
   db.execSQL("create table if not exists"
     + " test(question text,image text,answer1 text,answer2 text,answer3 text,answer4 text)");

   db.execSQL("insert into test values"
     + "('1.지금 현재 테스트 중인 이것은 1번 문제입니다.알겠냐 시부럴놈아',null,'가.이건 1번문제 정답이다.알겠냐 시부럴놈아','나.이건 2번문제 정답이다.알겠냐 시부럴놈아','다.이건 3번문제 정답이다.알겠냐 시부럴놈아','라.이건 4번문제 정답이다.알겠냐 시부럴놈아')");
   db.execSQL("insert into test values"
     + "('2.지금 현재 테스트 중인 이것은 2번 문제입니다.알겠냐 시부럴놈아','a2.png','가.이건 1번문제 정답이다.알겠냐 시부럴놈아','나.이건 2번문제 정답이다.알겠냐 시부럴놈아','다.이건 3번문제 정답이다.알겠냐 시부럴놈아','라.이건 4번문제 정답이다.알겠냐 시부럴놈아')");
   db.execSQL("insert into test values"
     + "('3.지금 현재 테스트 중인 이것은 3번 문제입니다.알겠냐 시부럴놈아',null,'가.이건 1번문제 정답이다.알겠냐 시부럴놈아','나.이건 2번문제 정답이다.알겠냐 시부럴놈아','다.이건 3번문제 정답이다.알겠냐 시부럴놈아','라.이건 4번문제 정답이다.알겠냐 시부럴놈아')");
   db.execSQL("insert into test values"
     + "('4.지금 현재 테스트 중인 이것은 4번 문제입니다.알겠냐 시부럴놈아','a4.png','가.이건 1번문제 정답이다.알겠냐 시부럴놈아','나.이건 2번문제 정답이다.알겠냐 시부럴놈아','다.이건 3번문제 정답이다.알겠냐 시부럴놈아','라.이건 4번문제 정답이다.알겠냐 시부럴놈아')");
   db.execSQL("insert into test values"
     + "('5.지금 현재 테스트 중인 이것은 5번 문제입니다.알겠냐 시부럴놈아',null,'가.이건 1번문제 정답이다.알겠냐 시부럴놈아','나.이건 2번문제 정답이다.알겠냐 시부럴놈아','다.이건 3번문제 정답이다.알겠냐 시부럴놈아','라.이건 4번문제 정답이다.알겠냐 시부럴놈아')");

   position %= COUNT;
   TextView tv = new TextView(mContext); // 텍스트뷰

   if (db != null) {
    cursor = db.rawQuery("select * from test", null);
    if (cursor.moveToFirst()) {
    
     questionText.setText(cursor.getString(0));
     answerText.setText(cursor.getString(2) + "\n\n"
       + cursor.getString(3) + "\n\n"
       + cursor.getString(4) + "\n\n"
       + cursor.getString(5));
     
     if (cursor.getString(1) != null) {
      image.setVisibility(View.VISIBLE);
      image.setBackgroundResource(GalImages[imageIndex]);
      imageIndex++;
     }

     tv.setText("조우까" + (position + 1) + cursor.getString(0)); // 글자지정
     tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 24); // 글자 크기
                 // 24sp
     cursor.moveToNext();
    }// 색상은
   } // 배경과

   ((ViewPager) pager).addView(tv, 0); // 뷰 페이저에 추가

   return tv;
  }

  // 뷰 객체 삭제.
  @Override
  public void destroyItem(View pager, int position, Object view) {
   ((ViewPager) pager).removeView((View) view);
  }

  // instantiateItem메소드에서 생성한 객체를 이용할 것인지
  @Override
  public boolean isViewFromObject(View view, Object obj) {
   return view == obj;
  }

 

빙구리 (200 포인트) 님이 2013년 9월 3일 질문
빙구리님이 2013년 9월 3일 수정

답변 달기

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