Android listview未更新
我正在使用viewpager。我有一些页面。我也有listview witch修改了一些图像和文本。 我写了一个函数witch has int position witch,它意味着每个位置我都尝试适配器不同的值。 我在viewpager的setOnPageChangeListener方法中使用此函数,但无法更新我的listview 这是我的适配器源代码Android listview未更新,android,android-listview,android-viewpager,baseadapter,Android,Android Listview,Android Viewpager,Baseadapter,我正在使用viewpager。我有一些页面。我也有listview witch修改了一些图像和文本。 我写了一个函数witch has int position witch,它意味着每个位置我都尝试适配器不同的值。 我在viewpager的setOnPageChangeListener方法中使用此函数,但无法更新我的listview 这是我的适配器源代码 public class MyAdapter extends BaseAdapter { private Context activity;
public class MyAdapter extends BaseAdapter {
private Context activity;
private List<CopyOfServerItems> items;
private CopyOfServerItems objBean;
private int row;
public ImageLoader imageLoader;
public MyAdapter(Context act, int resource, List<CopyOfServerItems> arrayList
) {
super();
this.activity = act;
this.row = resource;
imageLoader = new ImageLoader(act.getApplicationContext());
this.items = arrayList;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder holder;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(row, null);
holder = new ViewHolder();
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
if ((items == null) || ((position + 1) > items.size()))
return view;
objBean = items.get(position);
holder.title = (TextView) view.findViewById(R.id.cat_title);
holder.img = (ImageView) view.findViewById(R.id.cat_image);
holder.title.setText(objBean.getTitle());
imageLoader.DisplayImage(objBean.getThumbnail(), holder.img);
//holder.img.setImageResource(Imageid[position]);
return view;
}
public class ViewHolder {
public TextView title;
public ImageView img;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}
公共类MyAdapter扩展了BaseAdapter{
私人语境活动;
私人清单项目;
服务器项目objBean的私有副本;
私人int row;
公共图像加载器;
公共MyAdapter(上下文行为、int资源、列表arrayList
) {
超级();
这个活动=行动;
this.row=资源;
imageLoader=新的imageLoader(act.getApplicationContext());
this.items=arrayList;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图=转换视图;
视窗座;
如果(视图==null){
LayoutFlater充气机=(LayoutFlater)活动
.getSystemService(上下文布局\充气机\服务);
视图=充气机。充气(行,空);
holder=新的ViewHolder();
视图.设置标签(支架);
}否则{
holder=(ViewHolder)view.getTag();
}
if((items==null)| |((position+1)>items.size())
返回视图;
objBean=items.get(位置);
holder.title=(TextView)view.findViewById(R.id.cat_title);
holder.img=(ImageView)view.findViewById(R.id.cat_image);
holder.title.setText(objBean.getTitle());
DisplayImage(objBean.getThumbnail(),holder.img);
//holder.img.setImageResource(Imageid[位置]);
返回视图;
}
公共类视图持有者{
公共文本视图标题;
公共图像视图img;
}
@凌驾
public int getCount(){
返回items.size();
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
}
这是我的java代码
public class CategoryViewPager extends Fragment {
public final static String TAG = CategoryViewPager.class
.getSimpleName();
public static List<CopyOfServerItems> arrayOfList;
public static List<CopyOfServerItems> arrayOfList1;
private MyAdapter objAdapter;
public static CategoryViewPager newInstance() {
return new CategoryViewPager();
}
private ViewPager mViewPager;
private ListView cat_listview;
private PagerTitleStrip mPagerTitleStrip;
String result;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.azercell_category_viewpager,
container, false);
arrayOfList = new ArrayList<CopyOfServerItems>();
arrayOfList1 = new ArrayList<CopyOfServerItems>();
final List<View> pages = new ArrayList<View>();
final ArrayList<String> titles = new ArrayList<String>();
mViewPager = (ViewPager) rootView.findViewById(R.id.viewpager);
mPagerTitleStrip = (PagerTitleStrip) rootView
.findViewById(R.id.pagertitle);
LayoutInflater inflater1 = LayoutInflater.from(getActivity());
View page = inflater1.inflate(R.layout.azercell_category_pages, null);
page = inflater.inflate(R.layout.azercell_category_pages, null);
cat_listview = (ListView) page.findViewById(R.id.cat_listview);
mPagerTitleStrip.setTextColor(Color.BLUE);
for (int i = 0; i < arrayOfList.size(); i++) {
page = inflater.inflate(R.layout.azercell_category_pages, null);
cat_listview = (ListView) page.findViewById(R.id.cat_listview);
cat_listview.setAdapter(objAdapter);
titles.add(arrayOfList.get(i).getTitle());
pages.add(page);
}
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
try {
Log.e("position viewpager", String.valueOf(arg0));
parseJsonFromServer(result, arg0);
objAdapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
PagerAdapter p_adapter = new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return pages.size();
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView(pages.get(position));
}
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
@Override
public Object instantiateItem(View container, int position) {
((ViewPager) container).addView(pages.get(position));
return pages.get(position);
}
};
mViewPager.setAdapter(p_adapter);
return rootView;
}
public String parseJsonFromServer(String server, int position)
throws JSONException {
JSONArray jsonArray = null;
JSONObject mainJson = new JSONObject(server);
jsonArray = mainJson.getJSONArray("result");
JSONArray children = jsonArray.getJSONObject(position).getJSONArray(
"children");
for (int j = 0; j < children.length(); j++) {
CopyOfServerItems objItem = new CopyOfServerItems();
JSONObject data = children.getJSONObject(j).getJSONObject("data");
objItem.setTitle(data.getString("title"));
objItem.setThumbnail(data.getString("thumbnail"));
Log.e("123123123123", data.getString("title"));
arrayOfList1.add(objItem);
}
setAdapterToListview();
return server;
}
public void setAdapterToListview() {
objAdapter = new MyAdapter(getActivity(),
R.layout.azercell_category_adapter, arrayOfList1);
objAdapter.notifyDataSetChanged();
}
}
公共类CategoryViewPage扩展了片段{
公共最终静态字符串标记=CategoryViewPager.class
.getSimpleName();
公共静态列表arrayOfList;
公共静态列表arrayOfList1;
私有MyAdapter对象适配器;
公共静态类别viewPager newInstance(){
返回新的CategoryViewPage();
}
私有视图寻呼机mViewPager;
私有ListView目录视图;
私人页面标题栏mPagerTitleStrip;
字符串结果;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.azercell\u category\u viewpager,
货柜(虚假);;
arrayOfList=新的ArrayList();
arrayOfList1=新的ArrayList();
最终列表页=新的ArrayList();
最终ArrayList标题=新ArrayList();
mViewPager=(ViewPager)rootView.findViewById(R.id.ViewPager);
mPagerTitleStrip=(PagerTitleStrip)根视图
.findviewbyd(R.id.pagertitle);
LayoutFlater充气器1=LayoutFlater.from(getActivity());
查看页面=充气机1.充气(R.layout.azercell\u category\u页面,空);
页面=充气机。充气(R.layout.azercell\u category\u页面,空);
cat_listview=(listview)page.findviewbyd(R.id.cat_listview);
mpagertilestrip.setTextColor(Color.BLUE);
对于(int i=0;i@Override
public long getItemId(int position) {
return position;
}
updateData( int resource, List<CopyOfServerItems> arrayList ){
this.row = resource;
this.items = arrayList;
}
updateListView( int resource, List<CopyOfServerItems> arrayList ){
objAdapter.updateData( resource, arrayList );
objAdapter.notifyDataSetChanged();
}
public class CategoryViewPager extends Fragment {
public final static String TAG = CategoryViewPager.class
.getSimpleName();
public static List<CopyOfServerItems> arrayOfList;
public static List<CopyOfServerItems> arrayOfList1;
private MyAdapter[] objAdapter;
public static CategoryViewPager newInstance() {
return new CategoryViewPager();
}
private ViewPager mViewPager;
private ListView[] cat_listview;
private PagerTitleStrip mPagerTitleStrip;
String result;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.azercell_category_viewpager,
container, false);
arrayOfList = new ArrayList<CopyOfServerItems>();
arrayOfList1 = new ArrayList<CopyOfServerItems>();
final List<View> pages = new ArrayList<View>();
final ArrayList<String> titles = new ArrayList<String>();
mViewPager = (ViewPager) rootView.findViewById(R.id.viewpager);
mPagerTitleStrip = (PagerTitleStrip) rootView
.findViewById(R.id.pagertitle);
mPagerTitleStrip.setTextColor(Color.BLUE);
cat_listview = new ListView[ arrayOfList.size() ];
objAdapter = new MyAdapter[ arrayOfList.size() ];
for (int i = 0; i < arrayOfList.size(); i++) {
View page = inflater.inflate(R.layout.azercell_category_pages, null);
cat_listviews[ i ] = (ListView) page.findViewById(R.id.cat_listview);
objAdapter[ i ] = new MyAdapter( [put some paremeters here] );
cat_listview[ i ].setAdapter(objAdapter[ i ] );
titles.add(arrayOfList.get(i).getTitle());
pages.add(page);
}
.........
public String parseJsonFromServer(String server, int position)
throws JSONException {
JSONArray jsonArray = null;
JSONObject mainJson = new JSONObject(server);
jsonArray = mainJson.getJSONArray("result");
JSONArray children = jsonArray.getJSONObject(position).getJSONArray(
"children");
for (int j = 0; j < children.length(); j++) {
CopyOfServerItems objItem = new CopyOfServerItems();
JSONObject data = children.getJSONObject(j).getJSONObject("data");
objItem.setTitle(data.getString("title"));
objItem.setThumbnail(data.getString("thumbnail"));
Log.e("123123123123", data.getString("title"));
arrayOfList1.add(objItem);
}
updateListview( resource, obj, position );
return server;
}
updateListView( int resource, List<CopyOfServerItems> arrayList ){
objAdapter[ position ].updateData( resource, arrayList );
objAdapter[ position ].notifyDataSetChanged();
}