Android 使用listfragment更新FragmentPageAdapter
我想更新/刷新FragmentPageAdapter的页面。 在每个页面中,我都有一个带有复选框的自定义ListView,当我选中一个复选框时,我希望刷新页面并将此选择传递到其他页面 一个页面显示选中复选框的列表,另一个页面显示未选中的复选框 我用BBDD数据填充的arrayAdapter 4.我一直在找,但找不到一个明确的解决办法。。对不起 代码是: 使用FragmentPageAdapter初始化:Android 使用listfragment更新FragmentPageAdapter,android,listview,checkbox,android-fragments,Android,Listview,Checkbox,Android Fragments,我想更新/刷新FragmentPageAdapter的页面。 在每个页面中,我都有一个带有复选框的自定义ListView,当我选中一个复选框时,我希望刷新页面并将此选择传递到其他页面 一个页面显示选中复选框的列表,另一个页面显示未选中的复选框 我用BBDD数据填充的arrayAdapter 4.我一直在找,但找不到一个明确的解决办法。。对不起 代码是: 使用FragmentPageAdapter初始化: class GoogleMusicAdapter extends FragmentPager
class GoogleMusicAdapter extends FragmentPagerAdapter {
public GoogleMusicAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
postab = position;
return FragmentListaPendiente.init(position);
}
@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position % CONTENT.length].toUpperCase();
}
@Override
public int getCount() {
return CONTENT.length;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
public class MyListaCompra extends SherlockFragment {
View gv;
int postab = 0;
private static String[] CONTENT;
public static Intent newInstance(Activity activity,int pos) {
Intent intent = new Intent(activity, MyListaCompra.class);
return intent;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
CONTENT = getResources().getStringArray(R.array.tabCompra);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
Log.i("Truiton FragmentList", "ON CREATE O!");
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Fragment newContent = null;
SwipeMenuListFragment f = new SwipeMenuListFragment();
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.action_new:
//newContent = new añadirCompra();
Intent t = new Intent(getActivity(),DetallesListaCompra.class);
getActivity().startActivityForResult(t, 0);
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
gv = inflater.inflate(R.layout.inicio,container, false);
FragmentPagerAdapter adapter = new GoogleMusicAdapter(getChildFragmentManager());
ViewPager pager = (ViewPager) gv.findViewById(R.id.pager);
pager.setAdapter(adapter);
TabPageIndicator indicator = (TabPageIndicator) gv.findViewById(R.id.indicator);
indicator.setViewPager(pager);
return gv;
}
}
在实现FragmentPageAdapter上初始化:
class GoogleMusicAdapter extends FragmentPagerAdapter {
public GoogleMusicAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
postab = position;
return FragmentListaPendiente.init(position);
}
@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position % CONTENT.length].toUpperCase();
}
@Override
public int getCount() {
return CONTENT.length;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
public class MyListaCompra extends SherlockFragment {
View gv;
int postab = 0;
private static String[] CONTENT;
public static Intent newInstance(Activity activity,int pos) {
Intent intent = new Intent(activity, MyListaCompra.class);
return intent;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
CONTENT = getResources().getStringArray(R.array.tabCompra);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
Log.i("Truiton FragmentList", "ON CREATE O!");
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Fragment newContent = null;
SwipeMenuListFragment f = new SwipeMenuListFragment();
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.action_new:
//newContent = new añadirCompra();
Intent t = new Intent(getActivity(),DetallesListaCompra.class);
getActivity().startActivityForResult(t, 0);
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
gv = inflater.inflate(R.layout.inicio,container, false);
FragmentPagerAdapter adapter = new GoogleMusicAdapter(getChildFragmentManager());
ViewPager pager = (ViewPager) gv.findViewById(R.id.pager);
pager.setAdapter(adapter);
TabPageIndicator indicator = (TabPageIndicator) gv.findViewById(R.id.indicator);
indicator.setViewPager(pager);
return gv;
}
}
和页面代码
int fragNum;
private static View gv;
adapterCompra adapter;
private boolean result;
List<ListaCompra> lista = new ArrayList<ListaCompra>();
public static FragmentListaPendiente init(int val) {
FragmentListaPendiente truitonList = new FragmentListaPendiente();
// Supply val input as an argument.
Bundle args = new Bundle();
args.putInt("val", val);
truitonList.setArguments(args);
return truitonList;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
fragNum = getArguments() != null ? getArguments().getInt("val") : 1;
}
/**
* The Fragment's UI is a simple text view showing its instance number and
* an associated list.
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
gv = inflater.inflate(R.layout.listframe,null);
MiBBDD miZappe = new MiBBDD(getActivity(), "zappe", null, 1);
SQLiteDatabase db = miZappe.getWritableDatabase();
Cursor c1;
if(fragNum==0)
c1 = utilsBBDD.ObtenerListasCompraPorHacerBBDDInterna(getActivity());
else
c1 = utilsBBDD.ObtenerListasCompraRealizadaBBDDInterna(getActivity());
miZappe.close();
if (c1!= null && c1.moveToFirst())
{
do {
ListaCompra listaC = new ListaCompra();
listaC.setId_lista(c1.getInt(0));
listaC.setNombreLista(c1.getString(2));
listaC.setStatus(c1.getInt(3));
lista.add(listaC);
} while (c1.moveToNext());
c1.close();
}
return gv;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
adapter = new adapterCompra(getActivity());
for(int i=0;i<lista.size();i++){
adapter.add(lista.get(i));
}
setListAdapter(adapter);
}
@Override
public void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
}
public class adapterCompra extends ArrayAdapter<ListaCompra> {
CheckBox check;
public adapterCompra(Context context) {
super(context, 0);
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.inflate_lista, null);
}
final View v = convertView;
v.setTag(lista.get(position).id_lista);
TextView title = (TextView) convertView.findViewById(R.id.NombreLista);
title.setText(getItem(position).getNombreLista());
check = (CheckBox) convertView.findViewById(R.id.checkBox1);
if(fragNum==1)
check.setChecked(true);
final int pos = position;
check.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(buttonView.isChecked()){
AlertChangePurchase((Integer) v.getTag(), 1);
}
else{
AlertChangePurchase((Integer) v.getTag(), 0);
if(!result)
buttonView.setChecked(true);
else
buttonView.setChecked(false);
}
}
});
return convertView;
}
public void AlertChangePurchase(final int id_compra,int status){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(gv.getContext());
// Setting Dialog Title
alertDialog.setTitle("COMPRA");
result = true;
if(status==0){
alertDialog.setMessage(getResources().getString(R.string.AlertDeschekedCompra));
conditionsAlert(alertDialog, id_compra, status);
}
else{
// Setting Dialog Message
alertDialog.setMessage(getResources().getString(R.string.AlertChekedCompra));
conditionsAlert(alertDialog, id_compra, status);
}
alertDialog.show();
}
public void conditionsAlert( AlertDialog.Builder alertDialog,final int id_compra,final int status){
// On pressing Settings button
alertDialog.setPositiveButton("Si", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
MiBBDD miZappe = new MiBBDD(getActivity(), "zappe", null, 1);
utilsBBDD.CambiarStadoCompra(getActivity(), id_compra, status);
miZappe.close();
}
});
// on pressing cancel button
alertDialog.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
if(status==0)
result = false;
}
});
}
}
int fragNum;
私有静态视图gv;
适配器计算机适配器;
私有布尔结果;
List lista=new ArrayList();
公共静态碎片列表apendiente init(int val){
FragmentListaPendiente truitonList=新的FragmentListaPendiente();
//提供val输入作为参数。
Bundle args=新Bundle();
参数putInt(“val”,val);
truitonList.setArguments(args);
返回truitonList;
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
fragNum=getArguments()!=null?getArguments().getInt(“val”):1;
}
/**
*片段的UI是一个简单的文本视图,显示其实例号和
*关联的列表。
*/
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
gv=充气机充气(R.layout.listframe,空);
MiBBDD miZappe=new MiBBDD(getActivity(),“zappe”,null,1);
SQLiteDatabase db=miZappe.getWritableDatabase();
光标c1;
如果(fragNum==0)
c1=utilsBBDD.obtenerListAsComparaporHacerbbdinterna(getActivity());
其他的
c1=utilsBBDD.obtenerListAscoprarealizadabddinterna(getActivity());
miZappe.close();
if(c1!=null&&c1.moveToFirst())
{
做{
ListaCompra listaC=新ListaCompra();
setId_lista(c1.getInt(0));
setNombreLista(c1.getString(2));
listaC.setStatus(c1.getInt(3));
添加(listaC);
}而(c1.moveToNext());
c1.关闭();
}
返回gv;
}
@凌驾
已创建视图上的公共void(视图,捆绑保存状态){
//TODO自动生成的方法存根
super.onViewCreated(视图,savedInstanceState);
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
adapter=新适配器compra(getActivity());
对于(int i=0;i您希望带有复选框的片段有一个侦听器接口,它通过该接口调用以通知复选框的更改。您的父活动实现此侦听器并接收消息。然后该活动对其他片段执行适当的操作
请参见以下参考:
如果您只想拥有带有复选框的listview,请使用PreferencesFragment,然后为此创建一个xml文件,该文件包含复选框首选项,并将其保存到SharedReferences。否,listview是自动生成的…我不希望PreferenceFragment…我希望在复选框更改时更新列表,并更新列表元素更改为其他页面,因此您需要使用共享首选项保存它们不,我想您不明白我的意思…我有两个带有列表视图的页面…我的想法是,我对列表中的一个元素进行了检查,列表将被更新,此广告将离开元素转到另一个页面