gpt4 book ai didi

java - ViewPager.SimpleOnPageChangeListener 不起作用

转载 作者:行者123 更新时间:2023-11-30 03:14:15 25 4
gpt4 key购买 nike

我有一个 ViewPager/PagerAdapter,它应该允许我滑动一系列页脚图像以更改电台(通过更改字符串 PLAYLIST):

enter image description here

...然而,当我滑动图像时 - 似乎什么也没有发生。

非常感谢任何建议!

来源:

public class Home extends YouTubeBaseActivity implements

VideoClickListener {

private VideosListView listView;
private ActionBarDrawerToggle actionBarDrawerToggle;
public static final String API_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
public static final String VIDEO_ID = "o7VVHhK9zf0";
private int mCurrentTabPosition = NO_CURRENT_POSITION;
private static final int NO_CURRENT_POSITION = -1;
private DrawerLayout drawerLayout;
private ListView drawerListView;
private String[] drawerListViewItems;
private ViewPager mPager;
ScrollView mainScrollView;
Button fav_up_btn1;
Button fav_dwn_btn1;
String TAG = "DEBUG THIS";
String PLAYLIST = "EminemVEVO‎";
private OnPageChangeListener mPageChangeListener;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
final ActionBar actionBar = getActionBar();
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
ImagePagerAdapter adapter = new ImagePagerAdapter();
viewPager.setAdapter(adapter);

actionBar.setCustomView(R.layout.actionbar_custom_view_home);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);


drawerListViewItems = getResources().getStringArray(R.array.items);
drawerListView = (ListView) findViewById(R.id.left_drawer);
drawerListView.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_listview_item, drawerListViewItems));

drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
actionBarDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */
drawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description */
R.string.drawer_close /* "close drawer" description */
);
drawerLayout.setDrawerListener(actionBarDrawerToggle);

getActionBar().setDisplayHomeAsUpEnabled(true);

drawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
GravityCompat.START);

mainScrollView = (ScrollView) findViewById(R.id.groupScrollView);
listView = (VideosListView) findViewById(R.id.videosListView);
listView.setOnVideoClickListener(this);
new GetYouTubeUserVideosTask(responseHandler, PLAYLIST).execute();
}

Handler responseHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
populateListWithVideos(msg);
};
};

private void populateListWithVideos(Message msg) {
Library lib = (Library) msg.getData().get(
GetYouTubeUserVideosTask.LIBRARY);
listView.setVideos(lib.getVideos());
}

@Override
protected void onStop() {
responseHandler = null;
super.onStop();
}

@Override
public void onVideoClicked(Video video) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(video.getUrl()));
startActivity(intent);
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
actionBarDrawerToggle.onConfigurationChanged(newConfig);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}

private class ImagePagerAdapter extends PagerAdapter {


public ImagePagerAdapter() {
super();

}

private int[] mImages = new int[] { R.drawable.selstation_up_btn,
R.drawable.classical_up_btn, R.drawable.country_up_btn,
R.drawable.dance_up_btn, R.drawable.hiphop_up_btn };

@Override
public int getCount() {
return mImages.length;
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = Home.this;
ImageView imageView = new ImageView(context);

imageView.setImageResource(mImages[position]);
((ViewPager) container).addView(imageView, 0);
return imageView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}

private final ViewPager.SimpleOnPageChangeListener mPageChangeListener = new ViewPager.SimpleOnPageChangeListener() {

@Override
public void onPageSelected(final int position) {
onTabChanged(mPager.getAdapter(), mCurrentTabPosition, position);
mCurrentTabPosition = position;

}
};

protected void onTabChanged(final PagerAdapter adapter,
final int oldPosition, final int newPosition) {

if (oldPosition > newPosition) {
// left to right
} else {
// right to left
String PLAYLIST = "TimMcGrawVEVO‎";

View vg = findViewById(R.layout.home);
vg.invalidate();
}
final ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);

viewPager.setOnPageChangeListener(new OnPageChangeListener() {

int oldPos = viewPager.getCurrentItem();

@Override
public void onPageScrolled(int position, float arg1, int arg2) {

if (position > oldPos) {
// Moving to the right

} else if (position < oldPos) {
// Moving to the Left
String PLAYLIST = "TimMcGrawVEVO‎";

View vg = findViewById(R.layout.home);
vg.invalidate();
}
}

@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub

}

@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub

}

});

}
}
}

最佳答案

您没有将监听器添加到寻呼机。

您需要在 pagerAdapter 上调用 setOnPageChangeListener(mPageChangeListener)

例如在构造函数中:

public ImagePagerAdapter(){
super();
setOnPageChangeListener(mPageChangeListener);
}

有关更多信息,请查看文档。 http://developer.android.com/reference/android/support/v4/view/ViewPager.html

关于java - ViewPager.SimpleOnPageChangeListener 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com