사용자가 각 창에서 상호 작용할 수있는 ViewPager를 사용하려고합니다. 이 ViewPager의 경우 사용자에게 가로로 스 와이프하여 전환 창을 표시하는 자습서를 만듭니다. 사용자가 마지막 창에 도달하면 대시 보드로 이동 될 단추가 사용자에게 표시됩니다. ViewPager 내에서 버튼이 어떻게 작동하는지 이해하려고하는 몇 가지 기사를 읽었지만별로 의미가 없습니다.ViewPager 내의 버튼 사용
코드는 ViewPager 내의 창 내에있는 버튼을 클릭하면 대시 보드 활동이 시작됩니다.
내가 기사에서 본 것을에서class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 5;
}
public Object instantiateItem(View collection, int position) {
View v = new View(collection.getContext());
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.tutorial_step1;
break;
case 1:
resId = R.layout.tutorial_step2;
break;
case 2:
resId = R.layout.tutorial_step3;
break;
case 3:
resId = R.layout.tutorial_step4;
break;
case 4:
resId = R.layout.tutorial_complete;
v = inflater.inflate(R.layout.tutorial_complete, null, false);
LinearLayout l = (LinearLayout) v.findViewById(R.id.llComplete);
Button button=(Button)l.findViewById(R.id.bTutorialComplete);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Create an intent that starts a different activity
}
});
break;
}
((ViewPager) collection).addView(v, 0);
return v;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
, 내가 작업해야하는 코드는 다음과 같습니다 :
public Object instantiateItem(View collection, int position) {
View v = new View(collection.getContext());
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.tutorial_step1;
break;
case 1:
resId = R.layout.tutorial_step2;
break;
case 2:
resId = R.layout.tutorial_step3;
break;
case 3:
resId = R.layout.tutorial_step4;
break;
case 4:
resId = R.layout.tutorial_complete;
v = inflater.inflate(R.layout.tutorial_complete, null, false);
LinearLayout l = (LinearLayout) v.findViewById(R.id.llComplete);
Button button=(Button)l.findViewById(R.id.bTutorialComplete);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Create an intent that starts a different activity
}
});
break;
}
((ViewPager) collection).addView(v, 0);
return v;
}
그것은 단지 내 case 4:
입니다 여기에
switch
나는 단추가 있기 때문에 다른 레이아웃에는 이미지와 텍스트가 포함되어 있지만 상호 작용이 필요하지 않습니다.
저는 지금이 작업을 무수한 시간 동안하고 있으며 여전히이를 해결할 방법을 찾지 못했습니다. 이 일을 도와 주시면 매우 감사 할 것입니다.
을 내가 어떻게 귀하의 질문에 정말 잘 모르겠어요 입니다. 단추로보기의 레이아웃을 만드는 방법을 알아 내려고하고 있습니까? 아니면 활동을 시작하려는 의도를 만드는 방법을 알아 내려고하고 있습니까? 또는 다른 것? 코드는 지금까지 괜찮아 보인다. 레이아웃을 제공 할 수 있고 오류를 나타내는 LogCat을 제공 할 수 있다면 질문에 답변하는 데 도움이 될 것입니다. – louielouie
switch 문에 레이아웃을 제공했지만 레이아웃 중 하나에 버튼이 있습니다. 그 버튼이 활동을 시작하기위한 의도를 만들길 원합니다. 나는 의도를 만들고 스위치 문 내에서 활동을 시작하려고 시도했지만 컴파일러가이를 받아 들일 수는 없으며이 인 텐트 인수와 startActivity 메소드를 인식하지 못합니다. – kibria3