如何更新Android中ListView行中的查看分页器内容? [英] How to update View pager Content in ListView row in Android ?

查看:79
本文介绍了如何更新Android中ListView行中的查看分页器内容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在列表视图中将视图寻呼机实现为行。我在列表视图中完成了添加视图分页器,但问题是我在视图分页器中添加页面,无论返回SQLite计数函数。如果计数为3,则在View Pager 3中显示图像,如果count为5,则显示View Pager 5中的图像。但是得到StackOverFlowError.I的错误已经在最后2到3天尝试了最好的水平但是没有完美的工作。可以有人帮助我。如何做到这一点。



野兔是我的活动代码

public void getActivityObjectId_Count(){

try {

dbhelper = new MyDbHelper(this);

SQLiteDatabase db = dbhelper.getReadableDatabase();





光标cursor2 = db.rawQuery(从ActivityObjectList中选择count(activityObjId) +activityId+=?,new String [] {strDescription});

if(cursor2!= null){



cursor2.moveToFirst();



String strCount_ActivityObjectId = cursor2.getString(0);

intCount = Integer.parseInt(strCount_ActivityObjectId) ;



Log.e(intCount,在getActivityObjectId =+ intCount中);





}



cursor2.close();

db.close();

} catch(例外e){

// TODO:处理异常

e.printStackTrace();

}



}

类MyListAdapter扩展ArrayAdapter< all_post> {

上下文上下文;

int layoutResourceId;

private int selectedIndex;

ArrayList< all_post> data = new ArrayList< all_post>();



public MyListAdapter(Context context,int layoutResourceId,ArrayList< all_post> data){

super(context,layoutResourceId,data);

this.layoutResourceId = layoutResourceId;

this.context = context;

this.data = data ;



}



@Override

public int getCount()

{

notifyDataSetChanged();

返回data.size();



}



@Override

public long getItemId(int position){

返回位置;

}





@Override

public View getView(int position,View convertView, ViewGroup parent){

查看row = convertView;

持有人持有人= 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)ro w.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.setHorizo​​ntalFadingEdgeEnabled(true);

holder.viewPager.setFadingEdgeLength(20);

holder.viewPager.setClipToPadding(false);

holder.viewPager.setPadding(-5,0,0,0);

MyPagerAdapter adapter = new MyPagerAdapter(getContext());



holder.viewPager.setAdapter(适应ter);



holder.viewPager.setCurrentItem(0);

adapter.notifyDataSetChanged();

//holder.viewPager.getAdapter()。notifyDataSetChanged();





row.setTag(holder);

} else {

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.txtTi tle.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(按钮点击,事件是火);



}

} );





返回行;

}



类持有人{

TextView txt_Descid;

TextView txtTitle;

TextView txtInitialLetter;

TextView txtRemark ;

ViewPager viewPager;



Im ageView imgBtn_Rework;

ImageView imgBtn_FollowUp;

ImageView imgBtn_RateEquipMent;

ImageView imgBtn_Camera;

ImageView imgBtn_Audio;

ImageView imgBtn_FollowInspector;



}

}



class MyPagerAdapter扩展PagerAdapter {



上下文mContent;

LayoutInflater mLayoutInflater;

private List< string> testImages = new ArrayList< string>();





private int [] GalImages = new int [] {

R.drawable.img_placeholder,

R.drawable.img_placeholder,

R.drawable.img_placeholder,

R.drawable.img_placeholder ,

R.drawable.img_placeholder,

R.drawable.img_placeholder

};





public MyPagerAdapter(Context context){

super();

mContent = context;



mLayoutInflater =(LayoutInflater)mContent.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}



@Override

public float getPageWidth(int position){

返回0.9f;

}



@Override

public Object instantiateItem(ViewGroup容器,int position){

// TODO自动生成的catch块



ImageView imageView = new ImageView(mContent );

imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT));

imageView.setScaleType(ImageView.ScaleType.FIT_XY ); $



imageView.setImageResource(GalImages [position]);

((ViewPager)容器).addView(imageView,0);

返回imageView;

}



public int getItemPosition(Object object){

返回POSITION_NONE;

}



@Override

public void destroyItem(ViewGroup容器,int位置,对象对象){

((ViewPager)容器).removeView((View)对象);

}



@Override

public int getCount(){



//返回PAGE_NUM;

Log.e(intCount8888:,=+ intCount);

notifyDataSetChanged();

返回intCount;



}



@Override

public boolean isViewFromObject(View view,Object obj){



//返回view.equals(obj);

返回view ==((ImageView)obj);

}



}







这是我的LogCat信息



08-07 02:20:38.436 3096-3096 /? E / AndroidRuntime:FATAL EXCEPTION:main

java.lang.StackOverflowError

在android.widget.AdapterView $ AdapterDataSetObserver.onChanged(AdapterView.java:801)

在android.widget.AbsListView $ AdapterDataSetObserver.onChanged(AbsListView.java:5998)

在android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)

在android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)

在android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)

在com .example.tazeen.classnkk.AllPosts_Page $ MyListAdapter.getCount(AllPosts_Page.java:399)

在android.widget.AdapterView $ AdapterDataSetObserver.onChanged(AdapterView.java:801)

在android.widget.AbsListView $ AdapterDataSetObserver.onChanged(AbsListView.java:5998)

在android.database.DataSetObservable.notifyCha nged(DataSetObservable.java:37)

在android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)

在android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter。 java:286)

com.example.tazeen.classnkk.AllPosts_Page $ MyListAdapter.getCount(AllPosts_Page.java:399)

在android.widget.AdapterView $ AdapterDataSetObserver。 onChanged(AdapterView.java:801)

在android.widget.AbsListView $ AdapterDataSetObserver.onChanged(AbsListView.java:5998)

在android.database.DataSetObservable.notifyChanged( DataSetObservable.java:37)

在android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)

在android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java: 286)

在com.example.tazeen.classnkk.AllPosts_Page $ MyListAdapter.getCount(AllPosts_Page.java:399)

在android .widget.AdapterView $ AdapterDataSetObserver.onChanged(AdapterView.java:801)

在android.widget.AbsListView $ AdapterDataSetObserver.onChanged(AbsListView.java:5998)

在android .database.DataSetObservable.notifyChanged(DataSetObservable.java:37)

在android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)

在android.widget.ArrayAdapter .notifyDataSetChanged(ArrayAdapter.java:286)

at com.example.tazeen.classnkk.AllPosts_Page $ MyListAdapter.getCount(AllPosts_Page.java:399)

at android.widget .AdapterView $ AdapterDataSetObserver.onChanged(AdapterView.java:801)

在android.widget.AbsListView $ AdapterDataSetObserver.onChanged(AbsListView.java:5998)

在android.database .DataSetObservable.notifyChanged(DataSetObservable.java:37)

在android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.j ava:50)

在android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)

at com.example.tazeen.classnkk.AllPosts_Page $ MyListAdapter.getCount( AllPosts_Page.java:399)

在android.widget.AdapterView $ AdapterDataSetObserver.onChanged(AdapterView.java:801)

在android.widget.AbsListView $ AdapterDataSetObserver.onChanged( absListView.java:5998)

在android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)

在android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java: 50)

在android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)

at com.example.tazeen.classnkk.AllPosts_Page $ MyListAdapter.getCount(AllPosts_Page。 java:399)

在android.widget.AdapterView $ AdapterDataSetObserver.onChanged(AdapterView.java:801)

在android.widget.Abs ListView $ AdapterDataSetObserver.onChanged(AbsListView.java:5998)

在android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)

在android.widget.BaseAdapter。 notifyDataSetChanged(BaseAdapter.java:50)

在android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)

at com.example.tazeen.classnkk.AllPosts_Page $ MyListAdapter.getCount(AllPosts_Page.java:399)

在android.widget.AdapterView $ AdapterDataSetObserver.onChanged(AdapterView.java:801)

在android.widget.AbsListView $ AdapterDataSetObserver.onChanged(AbsListView.java:5998)

在android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)

在android.widget.BaseAdapter.notifyDataSetChanged( BaseAdapter.java:50)

在android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)

在com.example.tazeen.classnkk.AllPosts_Page $ MyListAdapter.getCount(AllPosts_Page.java:399)

在android.widget.AdapterView $ AdapterDataSetObs

I'm implementing view pager as row in list-view. I have done the adding view pager in List View, But the problem is I'm adding the pages in view pager whatever return SQLite count Function.If count is 3 so show the images in View Pager 3 and If count is 5 so show the images in View Pager 5 . But getting error of StackOverFlowError.I have tried on best level last 2 to 3 days but not work perfectly.Can someone help me.How to do this.

hare is my Activity code
public void getActivityObjectId_Count() {
try {
dbhelper = new MyDbHelper(this);
SQLiteDatabase db = dbhelper.getReadableDatabase();


Cursor cursor2 = db.rawQuery("select count(activityObjId) from ActivityObjectList where " + "activityId" + " = ?", new String[]{strDescription});
if (cursor2 != null) {

cursor2.moveToFirst();

String strCount_ActivityObjectId = cursor2.getString(0);
intCount = Integer.parseInt(strCount_ActivityObjectId);

Log.e("intCount", "in getActivityObjectId = " + intCount);


}

cursor2.close();
db.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

}
class MyListAdapter extends ArrayAdapter<all_post> {
Context context;
int layoutResourceId;
private int selectedIndex;
ArrayList<all_post> data = new ArrayList<all_post>();

public MyListAdapter(Context context, int layoutResourceId, ArrayList<all_post> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;

}

@Override
public int getCount()
{
notifyDataSetChanged();
return data.size();

}

@Override
public long getItemId(int position) {
return position;
}


@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");

}
});


return row;
}

class Holder {
TextView txt_Descid;
TextView txtTitle;
TextView txtInitialLetter;
TextView txtRemark;
ViewPager viewPager;

ImageView imgBtn_Rework;
ImageView imgBtn_FollowUp;
ImageView imgBtn_RateEquipMent;
ImageView imgBtn_Camera;
ImageView imgBtn_Audio;
ImageView imgBtn_FollowInspector;

}
}

class MyPagerAdapter extends PagerAdapter {

Context mContent;
LayoutInflater mLayoutInflater;
private List<string> testImages = new ArrayList<string>();


private int[] GalImages = new int[]{
R.drawable.img_placeholder,
R.drawable.img_placeholder,
R.drawable.img_placeholder,
R.drawable.img_placeholder,
R.drawable.img_placeholder,
R.drawable.img_placeholder
};


public MyPagerAdapter(Context context) {
super();
mContent = context;

mLayoutInflater = (LayoutInflater) mContent.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public float getPageWidth(int position) {
return 0.9f;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated catch block

ImageView imageView = new ImageView(mContent);
imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);

imageView.setImageResource(GalImages[position]);
((ViewPager) container).addView(imageView, 0);
return imageView;
}

public int getItemPosition(Object object) {
return POSITION_NONE;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}

@Override
public int getCount() {

// return PAGE_NUM;
Log.e("intCount8888: "," = " +intCount );
notifyDataSetChanged();
return intCount;

}

@Override
public boolean isViewFromObject(View view, Object obj) {

//return view.equals(obj);
return view == ((ImageView) obj);
}

}



Here is my LogCat information

08-07 02:20:38.436 3096-3096/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.StackOverflowError
at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:801)
at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:5998)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getCount(AllPosts_Page.java:399)
at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:801)
at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:5998)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getCount(AllPosts_Page.java:399)
at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:801)
at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:5998)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getCount(AllPosts_Page.java:399)
at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:801)
at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:5998)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getCount(AllPosts_Page.java:399)
at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:801)
at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:5998)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getCount(AllPosts_Page.java:399)
at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:801)
at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:5998)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getCount(AllPosts_Page.java:399)
at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:801)
at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:5998)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getCount(AllPosts_Page.java:399)
at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:801)
at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:5998)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getCount(AllPosts_Page.java:399)
at android.widget.AdapterView$AdapterDataSetObs

推荐答案

AdapterDataSetObserver.onChanged(AdapterView.java:801)

在android.widget.AbsListView
AdapterDataSetObserver.onChanged(AdapterView.java:801)
at android.widget.AbsListView


AdapterDataSetObserver.onChanged(AbsListView.java:5998)

在android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)

在android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)

在android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)

at com.example.tazeen.classnkk.AllPosts_Page
AdapterDataSetObserver.onChanged(AbsListView.java:5998)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)
at com.example.tazeen.classnkk.AllPosts_Page


MyListAdapter.getCount (AllPosts_Page.java:399)

在android.widget.AdapterView
MyListAdapter.getCount(AllPosts_Page.java:399)
at android.widget.AdapterView


这篇关于如何更新Android中ListView行中的查看分页器内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆