KC *_*hai 32 android android-viewpager
我是Viewpager的新手,在从谷歌阅读http://developer.android.com/reference/android/support/v4/view/ViewPager.html之后,我似乎无法找到任何相关内容viewPager.setOnItemClickListener(new OnItemClickListener() {.我们还有其他吗?作为项目单击的选项?
测试出来
viewPager.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent i = new Intent(MainActivity.this, SingleItemView.class);
i.putExtra("flag", flag);
i.putExtra("position", position);
startActivity(i);
}
});
Run Code Online (Sandbox Code Playgroud)
错误:方法setOnItemClickListener(new AdapterView.OnItemClickListener(){})未定义类型ViewPager
Foa*_*Guy 79
ViewPager没有OnItemClick回调方法.如果您希望在每个页面上单击事件,则必须将侦听器构建到适配器中的页面内容中.
这样的事情:
@Override
public Object instantiateItem(View collection, final int pos) { //have to make final so we can see it inside of onClick()
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View page = inflater.inflate(R.layout.YOUR_PAGE, null);
page.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//this will log the page number that was click
Log.i("TAG", "This page was clicked: " + pos);
}
});
((ViewPager) collection).addView(page, 0);
return page;
}
Run Code Online (Sandbox Code Playgroud)
你需要什么将取决于instantiateItem()你还没有发布的其他内容,所以我不能给你一个更具体的答案.
Vol*_*kiv 36
我实现了自定义ViewPager:
public class ClickableViewPager extends ViewPager {
private OnItemClickListener mOnItemClickListener;
public ClickableViewPager(Context context) {
super(context);
setup();
}
public ClickableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
setup();
}
private void setup() {
final GestureDetector tapGestureDetector = new GestureDetector(getContext(), new TapGestureListener());
setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
tapGestureDetector.onTouchEvent(event);
return false;
}
});
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener;
}
public interface OnItemClickListener {
void onItemClick(int position);
}
private class TapGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
if(mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(getCurrentItem());
}
return true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
和代码实现 onItemClickListener
ClickableViewPager viewPager = (ClickableViewPager) findViewById(R.id.viewPager);
viewPager.setOnItemClickListener(new ClickableViewPager.OnItemClickListener() {
@Override
public void onItemClick(int position) {
// your code
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73547 次 |
| 最近记录: |