gpt4 book ai didi

android - ListView 不刷新 fragment 与 viewpager 选项卡

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:36 25 4
gpt4 key购买 nike

在 jakewharton 的 Android-ViewPagerIndicator...github 示例中给出的 viewpager 样式选项卡内的 fragment 与 listview 一起使用时,我遇到了问题。

我对三个选项卡使用相同的库,每个选项卡都有一个 ListView ,并且为那里的适配器设置了相同的数组列表。

我正在使用 3 这种 fragment 都工作正常,但因为我希望当我对其中任何一个 fragment 进行更改时我的列表在所有其他 fragment 中更新,它没有反射(reflect)这些变化。我想如果我在三个选项卡中的任何一个列表中选中一个复选框(我正在更新 db 和我的数组列表中的值),那么它们各自 fragment 中的其他两个 ListView 应该反射(reflect)更改,请帮助我解决这个问题。 请帮助我,任何帮助将不胜感激

class RingFragment extends Fragment
{
public static RingFragment newInstance(Context c, ArrayList<Ringtones> ringList)
{
RingFragment fragment = new RingFragment();
cCntxt = c;
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
savedInstanceState)
{
rngAdapter = new RingAdapter(cCntxt, ringFragList);
lstRingtones = new ListView(cCntxt);
lstRingtones.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
lstRingtones.setAdapter(rngAdapter);
LinearLayout layout = new LinearLayout(getActivity());
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
layout.setGravity(Gravity.CENTER);
layout.addView(lstRingtones);
return layout;
}
public class RingAdapter extends BaseAdapter
{
ArrayList<Ringtones> arlstRingAdpter;
Context adptrContext;
public boolean noRing = false;
public RingAdapter(Context c, ArrayList<Ringtones> adptrRngtones)
{
arlstRingAdpter = adptrRngtones;
adptrContext = c;
}
@Override
public int getCount()
{
return arlstRingAdpter.size();
}
@Override
public Object getItem(int position)
{
return position;
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = convertView;
final Wrapper wrapper;
if (view == null)
{
view = (RelativeLayout)LayoutInflater.from(cCntxt).inflate(R.layout.cell_ringtone,
null);
wrapper = new Wrapper(view);
view.setTag(wrapper);
}
else
{
wrapper = (Wrapper) view.getTag();
}
return view;
}
}
}
}

:->我调用这些 fragment 的主要 Activity 是

public class MainActivity extends FragmentActivity
{
ViewPager mPager;
PageIndicator mIndicator;
MusicAdapter mAdapter;
RingtonesBL rngBL;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAdapter = new MusicAdapter(getSupportFragmentManager());
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
}
class MusicAdapter extends RingtoneFragmentAdapter
{
public MusicAdapter(FragmentManager fm)
{
super(fm);
}
@Override
public Fragment getItem(int position)
{
if(position % CONTENT.length == 0)
{
return
RingFragment.newInstance(AppConstants.cAppContext,AppConstants.arlst_RingAll);
}
else if(position % CONTENT.length == 1)
{
return RingFragment1.newInstance(AppConstants.cAppContext,
AppConstants.arlst_RingCart);
}
else
{
return RingFragment2.newInstance(AppConstants.cAppContext,
AppConstants.arlst_RingPurchased);
}
}
public int getItemPosition(Object object)
{
return POSITION_NONE;
}
@Override
public int getCount()
{
return CONTENT.length;
}
@Override
public CharSequence getPageTitle(int position)
{
return CONTENT[position % CONTENT.length].toUpperCase();
}
}
}

activity_main.xml 只有

 <com.ringtone.TabPageIndicator
android:id="@+id/indicator"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/indicator"
>
</android.support.v4.view.ViewPager>

请告诉我如何在更改任何 fragment ListView 时通知其他 fragment ListView 。

最佳答案

请尝试在这个分支之外做一些事情:例如:

else 
{
wrapper = (Wrapper) view.getTag();
}

wrapper.txtText.setText("Refreshed");

return view;
}

关于android - ListView 不刷新 fragment 与 viewpager 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12314600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com