Reputation: 47
I put the view pager in list view as row and want to update content of view pager when I scroll the list view . I have tried with =
@Override
public int getCount() {
// return PAGE_NUM;
Log.e("intCount8888: "," = " +intCount );
notifyDataSetChanged();
return intCount;
}
and I have calling the notifyDataSetChange on list Adapter also in getView()
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
Holder holder = null;
if (row == null)
{
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new Holder();
holder.txt_Descid = (TextView) row.findViewById(R.id.textDescid);
holder.txtTitle = (TextView) row.findViewById(R.id.txt_Desc);
holder.txtInitialLetter = (TextView) row.findViewById(R.id.txt_InitialLetter);
holder.txtRemark = (TextView) row.findViewById(R.id.textRemark);
holder.imgBtn_Rework = (ImageView) row.findViewById(R.id.imgButtonRework);
holder.imgBtn_FollowUp = (ImageView) row.findViewById(R.id.imgButtonFoloowUp);
holder.imgBtn_RateEquipMent = (ImageView) row.findViewById(R.id.imgButtonRateEquipment);
holder.imgBtn_Camera = (ImageView) row.findViewById(R.id.imgButtonCamera);
holder.imgBtn_Audio = (ImageView) row.findViewById(R.id.imgButtonAudio);
holder.imgBtn_FollowInspector = (ImageView) row.findViewById(R.id.imgButtonFollowInspector);
holder.viewPager = (ViewPager) row.findViewById(R.id.Image_ViewPagers);
holder.viewPager.setPageMargin(-50);
holder.viewPager.setHorizontalFadingEdgeEnabled(true);
holder.viewPager.setFadingEdgeLength(20);
holder.viewPager.setClipToPadding(false);
holder.viewPager.setPadding(-5, 0, 0, 0);
MyPagerAdapter adapter = new MyPagerAdapter(getContext());
holder.viewPager.setAdapter(adapter);
holder.viewPager.setCurrentItem(0);
adapter.notifyDataSetChanged();
//holder.viewPager.getAdapter().notifyDataSetChanged();
row.setTag(holder);
} else {
holder = (Holder) row.getTag();
}
All_Post all_Post = data.get(position);
holder.txt_Descid.setText(Integer.toString(all_Post.getID()));
String strTextDescId = holder.txt_Descid.getText().toString().trim();
Log.e("strTextDescId ", " = " + strTextDescId);
getActivityId(strTextDescId);
getActivityObjectId_Count();
holder.txtTitle.setText(all_Post.getName());
String strTxtTitle = holder.txtTitle.getText().toString().trim();
Log.e("strTxtTitle ", " = " + strTxtTitle);
holder.txtInitialLetter.setText(all_Post.getInitName());
holder.txtRemark.setText(all_Post.getStrDesc());
holder.imgBtn_Rework.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("Button click ", "event is fire");
}
});
But getting error
08-07 05:56:27.806 4475-4475/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.StackOverflowError
at java.lang.IntegralToString.convertInt(IntegralToString.java:209)
at java.lang.IntegralToString.appendInt(IntegralToString.java:173)
at java.lang.StringBuilder.append(StringBuilder.java:139)
at com.example.tazeen.classnkk.AllPosts_Page$MyPagerAdapter.getCount(AllPosts_Page.java:553)
at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:882)
at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2905)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
at com.example.tazeen.classnkk.AllPosts_Page$MyPagerAdapter.getCount(AllPosts_Page.java:554)
at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:882)
at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2905)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
at com.example.tazeen.classnkk.AllPosts_Page$MyPagerAdapter.getCount(AllPosts_Page.java:554)
at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:882)
at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2905)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
at com.example.tazeen.classnkk.AllPosts_Page$MyPagerAdapter.getCount(AllPosts_Page.java:554)
at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:882)
at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2905)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
at com.example.tazeen.classnkk.AllPosts_Page$MyPagerAdapter.getCount(AllPosts_Page.java:554)
at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:882)
at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2905)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
at com.example.tazeen.classnkk.AllPosts_Page$MyPagerAdapter.getCount(AllPosts_Page.java:554)
at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:882)
at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2905)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
at com.example.tazeen.classnkk.AllPosts_Page$MyPagerAdapter.getCount(AllPosts_Page.java:554)
at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:882)
at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2905)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
at com.example.tazeen.classnkk.AllPosts_Page$MyPagerAdapter.getCount(AllPosts_Page.java:554)
at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:882)
at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2905)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
at com.example.tazeen.classnkk.AllPosts_Page$MyPagerAdapter.getCount(AllPosts_Page.java:554)
at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:882)
at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2905)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
at com.example.tazeen.classnkk.AllPosts_Page$MyPagerAdapter.getCount(AllPost
Upvotes: 0
Views: 739
Reputation: 265
Notifydatasetchange() is used to tell adapter to update its list, when the data has changed. You do not call it in getView() or in getCount(). You have to call notifyDataSetChanged(), if you have added or removed any list item from the list View.
getView() method will inflate the view when you scroll the lisview. And getCount() method just returns the number of list items that ListView contains.
Upvotes: 3