Date : March 29 2020, 07:55 AM
will be helpful for those in need Found my problem. In the parent of the parent of my view someone subclassed LinearLayout and overrode requestLayout() without calling super.requestLayout(). This broke the refreshing of my view hierarchy and prevented onMeasure and onLayout from being called on my ViewPager. Without measuring and laying out the pages they showed up as blank in ViewPager.
|
How to delete item from viewpager and pageradapter
Date : March 29 2020, 07:55 AM
This might help you first you need to use List because of dynamically deleting objects. second you need @Override
public int getItemPosition(Object object){
return PagerAdapter.POSITION_NONE;
}
public class ViewPagerAdapter extends PagerAdapter {
// Declare Variables
Context context;
List<String> rank;
List<String> country;
List<String> population;
List<Integer> flag = new ArrayList<Integer>();
LayoutInflater inflater;
public ViewPagerAdapter(Context context, String[] rank, String[] country,
String[] population, int[] flag) {
this.context = context;
this.rank = new ArrayList<String>(Arrays.asList(rank));
this.country = new ArrayList<String>(Arrays.asList(country));
this.population = new ArrayList<String>(Arrays.asList(population));
for (int i : flag){
this.flag.add(i);
}
}
@Override
public int getCount() {
return rank.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((RelativeLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// Declare Variables
TextView txtrank;
TextView txtcountry;
TextView txtpopulation;
ImageView imgflag;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.viewpager_item, container,
false);
// Locate the TextViews in viewpager_item.xml
txtrank = (TextView) itemView.findViewById(R.id.rank);
txtcountry = (TextView) itemView.findViewById(R.id.country);
txtpopulation = (TextView) itemView.findViewById(R.id.population);
Button b=(Button)itemView.findViewById(R.id.button1);
final int delPosition = position;
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
rank.remove(delPosition);
country.remove(delPosition);
population.remove(delPosition);
flag.remove(delPosition);
notifyDataSetChanged();
}
});
// Capture position and set to the TextViews
txtrank.setText(rank.get(position));
txtcountry.setText(country.get(position));
txtpopulation.setText(population.get(position));
// Locate the ImageView in viewpager_item.xml
imgflag = (ImageView) itemView.findViewById(R.id.flag);
// Capture position and set to the ImageView
imgflag.setImageResource(flag.get(position));
// Add viewpager_item.xml to ViewPager
((ViewPager) container).addView(itemView);
return itemView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// Remove viewpager_item.xml from ViewPager
((ViewPager) container).removeView((RelativeLayout) object);
}
@Override
public int getItemPosition(Object object){
return PagerAdapter.POSITION_NONE;
}
}
|
ViewPager.setAdapter() throwing NullPointException; viewPager and pagerAdapter don't seem null?
Tag : java , By : Bharath
Date : March 29 2020, 07:55 AM
I think the issue was by ths following , So I am messing around with using ViewPager in tandem with Navigation Drawer. I have the Navigation Drawer working. @Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
|
Tag : android , By : Jason Jennings
Date : March 29 2020, 07:55 AM
help you fix your problem The problem was isViewFromObject method. I forgot to write inside of the method. And if you're gonna use the ViewPager you have to add destroyItem() method as well. @Override
public boolean isViewFromObject(View view, Object object)
{
return view==object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object)
{
((ViewPager) container).removeView((View) object);
}
|
Date : March 29 2020, 07:55 AM
|