左,右导航viewpager不工作 [英] left and right navigation to viewpager not working
问题描述
我是用我的应用程序查看传呼机,viewpager是工作完美,但我想添加viewpagerindicator,以下是我的片断code和用户界面设计的XML任何一个可以告诉我是什么问题?在此先感谢.. ...........
公共类Test_Pager延伸活动{
私人字符串strtd;
的String [] imgStr;
ImageView的ImageView的;
ArrayList的<字符串> userImgArrayList;
的String [] myURLs;
/ *国家列表* /
JSONArray COUNTRY_LIST = NULL;
私人ServiceHandler SH;
私人字符串jsonStr;
私人的JSONObject jsonObj;
私人字符串user_img;
私人字符串user_pro;
私有静态字符串PROFILE_VIEW_URL =;
私有静态最后弦乐USER_IMG =product_images;
@覆盖
保护无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.test_pagerss);
userImgArrayList = getIntent()getStringArrayListExtra(user_images);
ViewPager viewPager =(ViewPager)findViewById(R.id.view_pager);
ImageAdapter适配器=新ImageAdapter(本);
viewPager.setAdapter(适配器);
// TitlePageIndicator titleIndicator =(TitlePageIndicator)findViewById(R.id.titles);
// titleIndicator.setViewPager(viewPager);
leftss =(ImageView的)findViewById(R.id.lefticonsss);
rightss =(ImageView的)findViewById(R.id.righticonsss);
ImageView的=(ImageView的)findViewById(R.id.full_image_view);
PROFILE_VIEW_URL =;
。StrictMode.ThreadPolicy政策=新StrictMode.ThreadPolicy.Builder()permitAll()建();
StrictMode.setThreadPolicy(政策);
SH =新ServiceHandler();
//制作一个请求URL并得到响应
jsonStr = sh.makeServiceCall(PROFILE_VIEW_URL,ServiceHandler.GET);
Log.d(回应:,>中+ jsonStr);
尝试 {
jsonObj =新的JSONObject(jsonStr);
/ * proview_business = jsonObj.getString(PROFILE_VIEW_BUSINESS);
proview_subcat = jsonObj.getString(PROFILE_VIEW_SUB_CATAGORY);
proview_mainpro = jsonObj.getString(PROFILE_VIEW_MAINPRODUCTS);
proview_expr = jsonObj.getString(PROFILE_VIEW_EXPERIENCE);
proview_cmpname = jsonObj.getString(PROFILE_VIEW_COMPANYNAME);
proview_website = jsonObj.getString(PROFILE_VIEW_WEBSITE); * /
// user_img = jsonObj.getString(USER_IMG);
user_img = jsonObj.getString(USER_IMG);
user_img =;
userImgArrayList =新的ArrayList<字符串>(); //声明userImgArrayList全球如ArrayList<字符串> userImgArrayList;
JSONArray picarray = jsonObj.getJSONArray(USER_IMG);
的for(int i = 0; I< picarray.length();我++)
{
user_img = picarray.getString(ⅰ);
userImgArrayList.add(user_img);
Log.d(mylog,个当前PRO PIC =+ user_img);
}
}赶上(JSONException E){
e.printStackTrace();
}
leftss.setOnClickListener(新OnClickListener(){
@覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
viewPager.setCurrentItem(+ 1,真正的);
}
});
}
公共类ImageAdapter扩展PagerAdapter {
上下文语境;
ImageAdapter(上下文的背景下)
{
this.context =背景;
}
@覆盖
公众诠释getCount将(){
返回USER_IMG.length();
}
@覆盖
公共无效destroyItem(View容器,INT位置,Object对象){
((ViewPager)容器).removeView((查看)对象);
}
@覆盖
公共布尔isViewFromObject(查看视图,Object对象){
返回查看==((ImageView的)对象);
}
@覆盖
公共对象instantiateItem(ViewGroup中的容器,INT位置){
ImageView的ImageView的=新ImageView的(上下文);
INT填充= context.getResources()。getDimensionPixelSize(
R.dimen.activity_horizontal_margin);
imageView.setPadding(填充,填充,填充,填充);
//imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
//Picasso.with(context).load(userImgArrayList.get(position)).into(imageView);
Picasso.with(上下文).load(userImgArrayList.get(位置))调整(200,200)。走进(ImageView的)。
/ *的for(int i = 0; I< myURLs.length;我++)
{
尝试 {
URL =新的URL(myURLs [I]);
}赶上(MalformedURLException异常E){
// TODO自动生成的catch块
e.printStackTrace();
}
尝试 {
BMP = BitmapFactory.de codeStream(url.openConnection()的getInputStream());
}赶上(IOException异常E){
// TODO自动生成的catch块
e.printStackTrace();
}
imageView.setImageBitmap(BMP);
}
* /
// imageView.setImageURI(Uri.parse(imgStr [位置]));
((ViewPager)容器).addView(ImageView的,0);
返回ImageView的;
}
}
}
与myXML
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=横向
机器人:背景=@机器人:彩色/黑白
机器人:重力=center_horizontal
>
< ImageView的
机器人:layout_height =WRAP_CONTENT
机器人:layout_width =WRAP_CONTENT
机器人:SRC =@可绘制/箭头
机器人:旋转=180
机器人:ID =@ + ID / lefticonsss
/>
< android.support.v4.view.ViewPager
机器人:ID =@ + ID / view_pager
机器人:layout_width =150dp
机器人:layout_height =150dp
/>
< ImageView的机器人:ID =@ + ID / full_image_view
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT/>
< ImageView的
机器人:layout_height =WRAP_CONTENT
机器人:layout_width =WRAP_CONTENT
机器人:SRC =@可绘制/箭头
机器人:ID =@ + ID / righticonsss
/>
< / LinearLayout中>
我使用这个库的https:// github上。 COM / astuetz / PagerSlidingTabStrip
摘要:
1.do这在的onCreate
//初始化ViewPager并设置一个适配器
ViewPager寻呼机=(ViewPager)findViewById(R.id.pager);
pager.setAdapter(新TestAdapter(getSupportFragmentManager()));
//绑定的选项卡的ViewPager
PagerSlidingTabStrip标签=(PagerSlidingTabStrip)findViewById(R.id.tabs);
tabs.setViewPager(寻呼机);
<醇开始=2>
(可选)如果您使用 OnPageChangeListener
您 ViewPager
你应该设置在控件
,而不是在 ViewPager
直接
tabs.setOnPageChangeListener(mPageChangeListener);
I am using view pager in my app,viewpager is working perfect but i want to add viewpagerindicator,following is my snippet code and xml of ui design can any one tell me what is issue?thanks in advance.............
public class Test_Pager extends Activity{
private String strtd;
String[] imgStr;
ImageView imageView;
ArrayList<String> userImgArrayList;
String[] myURLs;
/*country list*/
JSONArray country_list=null;
private ServiceHandler sh;
private String jsonStr;
private JSONObject jsonObj;
private String user_img;
private String user_pro;
private static String PROFILE_VIEW_URL = "";
private static final String USER_IMG="product_images";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_pagerss);
userImgArrayList = getIntent().getStringArrayListExtra("user_images");
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
ImageAdapter adapter = new ImageAdapter(this);
viewPager.setAdapter(adapter);
// TitlePageIndicator titleIndicator = (TitlePageIndicator) findViewById(R.id.titles);
// titleIndicator.setViewPager(viewPager);
leftss=(ImageView)findViewById(R.id.lefticonsss);
rightss=(ImageView)findViewById(R.id.righticonsss);
imageView = (ImageView) findViewById(R.id.full_image_view);
PROFILE_VIEW_URL="";
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
sh = new ServiceHandler();
// Making a request to url and getting response
jsonStr = sh.makeServiceCall(PROFILE_VIEW_URL, ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
try {
jsonObj = new JSONObject(jsonStr);
/*proview_business = jsonObj.getString(PROFILE_VIEW_BUSINESS);
proview_subcat = jsonObj.getString(PROFILE_VIEW_SUB_CATAGORY);
proview_mainpro = jsonObj.getString(PROFILE_VIEW_MAINPRODUCTS);
proview_expr = jsonObj.getString(PROFILE_VIEW_EXPERIENCE);
proview_cmpname = jsonObj.getString(PROFILE_VIEW_COMPANYNAME);
proview_website = jsonObj.getString(PROFILE_VIEW_WEBSITE);*/
// user_img=jsonObj.getString(USER_IMG);
user_img=jsonObj.getString(USER_IMG);
user_img = "";
userImgArrayList = new ArrayList<String>();//declare userImgArrayList globally like ArrayList<String> userImgArrayList;
JSONArray picarray = jsonObj.getJSONArray(USER_IMG);
for(int i=0;i< picarray.length();i++)
{
user_img = picarray.getString(i);
userImgArrayList.add(user_img);
Log.d("mylog", "curent pro pic = " + user_img);
}
} catch (JSONException e) {
e.printStackTrace();
}
leftss.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
viewPager.setCurrentItem(+1,true);
}
});
}
public class ImageAdapter extends PagerAdapter {
Context context;
ImageAdapter(Context context)
{
this.context=context;
}
@Override
public int getCount() {
return USER_IMG.length();
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(context);
int padding = context.getResources().getDimensionPixelSize(
R.dimen.activity_horizontal_margin);
imageView.setPadding(padding, padding, padding, padding);
//imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
//Picasso.with(context).load(userImgArrayList.get(position)).into(imageView);
Picasso.with(context).load(userImgArrayList.get(position)).resize(200, 200) .into(imageView);
/*for(int i=0; i<myURLs.length;i++)
{
try {
url = new URL(myURLs[i]);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
imageView.setImageBitmap(bmp);
}
*/
// imageView.setImageURI(Uri.parse(imgStr[position]));
((ViewPager) container).addView(imageView, 0);
return imageView;
}
}
}
Myxml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="@android:color/black"
android:gravity="center_horizontal"
>
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/arrow"
android:rotation="180"
android:id="@+id/lefticonsss"
/>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="150dp"
android:layout_height="150dp"
/>
<ImageView android:id="@+id/full_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/arrow"
android:id="@+id/righticonsss"
/>
</LinearLayout>
I use this library https://github.com/astuetz/PagerSlidingTabStrip
Summary :
1.do this in your onCreate
// Initialize the ViewPager and set an adapter
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new TestAdapter(getSupportFragmentManager()));
// Bind the tabs to the ViewPager
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(pager);
(Optional) If you use an
OnPageChangeListener
with yourViewPager
you should set it in theWidget
rather than on theViewPager
directly.tabs.setOnPageChangeListener(mPageChangeListener);
这篇关于左,右导航viewpager不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!