Jeden z moich układów wewnątrz mojego ViewPagera ma przycisk. "R.layout.add_site". Chciałbym nacisnąć przycisk i przewiń do konkretnej strony. Mam już możliwość przesuwania do określonej strony, ale chciałbym mieć oba.Przycisk w ViewPager przejdź do określonej strony
Teraz jestem pewien, że jest sposób, aby to zrobić, ale z jakiegoś powodu nie mogę tego rozgryźć.
Zobaczysz, że podjąłem próbę, ale po prostu nie wiem, jaką metodę wybrać, aby przewinąć ją do żądanej strony. Który jest R.layout.main.
Oto mój kod.
public class fieldsActivity extends Activity {
Button addSiteButton;
Button cancelButton;
Button signInButton;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// to create a custom title bar for activity window
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.fields);
// use custom layout title bar
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.topbar);
Pager adapter = new Pager();
ViewPager mPager = (ViewPager) findViewById(R.id.fieldspager);
mPager.setAdapter(adapter);
mPager.setCurrentItem(1);
addSiteButton = (Button) findViewById(R.id.addSiteButton);
addSiteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Don't know what method to call!?
}
});
cancelButton = (Button) findViewById(R.id.cancel_button);
signInButton = (Button) findViewById(R.id.sign_in_button);
}
private class Pager extends PagerAdapter {
public int getCount() {
return 3;
}
@Override
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.field01;
break;
case 1:
resId = R.layout.add_site;
break;
case 2:
resId = R.layout.main;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@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;
}
}
}
Każda pomoc jest doceniana!
Próbowałem to, ale ja dostać "Varialbe 'mPager' jest dostępny z poziomu wewnętrznej klasy Musi być zadeklarowane ostateczne.". – PhDeOliveira
Uważam, że moje połączenie onClick jest w niewłaściwym miejscu. Gdzie powinienem to umieścić? – PhDeOliveira
mPager musi być zadeklarowany jako ostateczny –