Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在ViewPager中单击项目_Android_Android Viewpager_Onclicklistener - Fatal编程技术网

Android 如何在ViewPager中单击项目

Android 如何在ViewPager中单击项目,android,android-viewpager,onclicklistener,Android,Android Viewpager,Onclicklistener,如何在ViewPager中单击项目。我想返回我单击的当前项目的位置。例如,我尝试运行下一个代码: pager.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast toast = Toast.makeText(getApplicationContext(), pager.getCurrentItem(), Toast.LENGTH_SHO

如何在ViewPager中单击项目。我想返回我单击的当前项目的位置。例如,我尝试运行下一个代码:

pager.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
        Toast toast = Toast.makeText(getApplicationContext(),
            pager.getCurrentItem(), Toast.LENGTH_SHORT);
        toast.show();
        }
    });

但是什么也没发生。我在点击ViewPager的布局时已经准备好了所有的书面选项。也许有人能告诉我,我做错了什么?

为什么不将onclick侦听器添加到片段中。然后广播一个意图

public class Your extends  Fragment
{
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle  savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    View inflatedView = inflater.inflate(R.layout.customlayout, null);
    inflatedView.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
    Intent temp =  new Intent("anything.com.com.CHECK_CURRENT_PAGE_ITEM");
    getActivity().sendBroadcast(temp);
    }
    });
    }
}
然后在您的主要活动中注册一个广播接收器

public class Youractivity extends FragmentActivity
{

private BroadcastReceiver clickedReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast toast = Toast.makeText(getApplicationContext(),
        pager.getCurrentItem(), Toast.LENGTH_SHORT);
    }
};

@Override
public void onCreate()
{
...
   registerBroadcstReceiver(clickedReceiver, new IntentFilter("anything.com.com.CHECK_CURRENT_PAGE_ITEM"))

...
}
@Override
public void onDestroy()
{
unregisterBroadcastReceiver()
}
}

请张贴您的班级的完整代码!