Hi,
I'm developing an application for Galaxy Tab (api level 8) and I have
found a problem.
I use a pageadapter with 2 fragments, MainCLIFrag and AssArtCliFrag,
under the relevant code:
the problem is:
in the MainCLIFrag I have a search button for choosing a customer from
a list (I show a ListActivity), after chosen,
in the MainCLIFrag I show the Customer Detail and in the AssArtCliFrag
the list of his orders;
if I change the customer, in the MainCLIFrag I communicate to the
AssArtCliFrag that the customer was changed, so, the orders are
refreshed.
Everything works until the configuration changes (screen rotation for
example), in this case, the variabile view in the AssArtCliFrag
becomes null, and I'm not able to refresh the orders anymore, even
getActivity() is null.
To get again the orders, I have to go AssArtCliFrag, rotate the
screen, so, the event onCreateView fires and the view will be set
again.
That is very annoying and I don't know how to solve it.
Any suggestion will be highly appreciated,
thank you.
Davide.
*************** FragmentActivity
public class ViewPagerFragmentActivity extends FragmentActivity
implements OnCustomerSelectedListener {
private PagerAdapter mPagerAdapter;
@Override
public void onCustomerSelected(String CodCli)
{
AssArtCliFrag fragmentB = (AssArtCliFrag)
mPagerAdapter.getItem(1);
fragmentB.SelectAss(CodCli);
}
..................... and in the onCreate ...
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this,
MainCLIFrag.class.getName()));
fragments.add(Fragment.instantiate(this,
AssArtCliFrag.class.getName()));
mPagerAdapter = new
PagerAdapter(super.getSupportFragmentManager(),
fragments);
ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
pager.setAdapter(mPagerAdapter);
.....................
*************** AssArtCliFrag
public class AssArtCliFrag extends ListFragment {
private SimpleCursorAdapter mAdapter;
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup
container, Bundle savedInstanceState) {
if (container == null) {
return null;
}
view = (LinearLayout)inflater.inflate(R.layout.assartcli,
container,
false);
CreateFields();
return view;
}
public void SelectAss(String CodCli)
{
Cursor cursor = GetCursor(CodCli);
mAdapter.changeCursor(cursor);
mAdapter.notifyDataSetChanged();
}
private Cursor GetCursor(String CodCli)
{
try {
AgenteProvider ap = new AgenteProvider(view.getContext());
String sql = "SELECT COD_ART AS _id, COD_ART, DES_ART, DAT_ULT,
" +
"QTA_ULT, PRZ_ULT FROM ASSORCLI" +
" WHERE COD_CLI = '" + CodCli + "'";
Cursor MyCursor = ap.Articoli.CursorART(sql);
if (AgenteProvider.ErrorMessage != "")
DisplayError(AgenteProvider.ErrorMessage);
getActivity().startManagingCursor(MyCursor);
return MyCursor;
} catch (Exception e) {
DisplayError(e.toString());
return null;
}
}
*************** MainCLIFrag
public class MainCLIFrag extends Fragment {
............................
............................
OnCustomerSelectedListener mListener;
public interface OnCustomerSelectedListener {
public void onCustomerSelected(String CodCli);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (OnCustomerSelectedListener) activity;
}
catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must
implement
OnCustomerSelectedListener");
}
}
public void CliSelected(String CodCli)
{
mListener.onCustomerSelected(CodCli);
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en