sanders
sanders

Reputation: 10888

Activity for each row in database table

For an application which I am currently building in Java for Android I am looking for the following. I have a set with lets say 10 database records. For each row i want to show an activity (which is every time the same activity). The activity has some fields for each row to be updated.

Lets say for example you have a record set with contacts and now you want to loop through al 10 contacts and update the data.

Now I am not sure how this should work in android. Should I use fragments for this? How should i model this. Some pseudo code would help.

Since this is a custom app I am developing for ICS

Thanks very much

Upvotes: 0

Views: 109

Answers (2)

vasart
vasart

Reputation: 6702

Create FragmentActivity with ViewPager.

ViewPager uses Adapter to display same fragments with different data.

For example, if you store in database images ids which you want to display, the code will look like this.

public class MyActivity extends FragmentActivity {

public static class MyFragment extends Fragment {
    @Override
    public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
        final ImageView content = new ImageView(getActivity());
        content.setImageResource(getArguments().getInt("img"));

        return content;
    }
}

private class MyPagerAdapter extends FragmentStatePagerAdapter {
    private final ArrayList<Integer> imgs;

    public AppTourPagerAdapter(final FragmentManager fm, final ArrayList<Integer> imgs) {
        super(fm);
        this.imgs = imgs;
    }

    @Override
    public int getCount() {
        return imgs.size();
    }

    @Override
    public Fragment getItem(final int position) {
        final MyFragment fragment = new MyFragment();
        final Bundle args = new Bundle();
        args.putInt("img", imgs.get(position));
        fragment.setArguments(args);
        return fragment;
    }
}

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_activity);

    final ViewPager pager = (ViewPager) findViewById(R.id.pager);
    final ArrayList<Integer> imgIds = ... // get values from database
    pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(), imgIds));
}
}

Upvotes: 1

WIllJBD
WIllJBD

Reputation: 6164

Use a viewpager with a viewpager adapter. then create a layout with a view pager, after that create a layout that will contain the items in the view pager you wish to flip through. In the adapter inflate the layout you wish to flip through. There are tons of examples online. Google it. You can copy paste 90% of what, you need to make it work.

Upvotes: 0

Related Questions