Android Open Source - rpg-droid Fragment_ Character List






From Project

Back to project page rpg-droid.

License

The source code is released under:

Apache License

If you think the Android project rpg-droid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.thing.rpg_droid.app;
// www.  java  2 s  .c  o m
import android.app.ListFragment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import com.thing.rpg_droid.res.R;

import java.util.ArrayList;
import java.util.UUID;

public class Fragment_CharacterList extends ListFragment
{
    private CharacterListItemAdapter mCharListAdapter;

    public Fragment_CharacterList()
    {

    }

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        ArrayList<CharacterListItem> lChars = null;

        if (getArguments() != null)
            lChars = getArguments().getParcelableArrayList("CharacterList");

        if (lChars == null)
        {
            lChars = new ArrayList<CharacterListItem>();

            lChars.add(new CharacterListItem(UUID.randomUUID(), "Argus Peabody","Magus","4"));
            //TODO load character list from file.
        }

        mCharListAdapter = new CharacterListItemAdapter(getActivity(), lChars);

        setHasOptionsMenu(true);
    }

    @Override
    public View onCreateView(LayoutInflater pInflater, ViewGroup pContainer, Bundle pSavedInstanceState)
    {
        ListView lListView = (ListView)pInflater.inflate(R.layout.fragment_characterlist, pContainer, false);

        lListView.setAdapter(mCharListAdapter);

        return lListView;
    }

    public static class CharacterListItem implements Parcelable
    {
        UUID characterID;
        String characterName;
        String characterClass;
        String characterLevel;

        public CharacterListItem(UUID pId, String pName, String pClass, String pLevel)
        {
            characterID = pId;
            characterName = pName;
            characterClass = pClass;
            characterLevel = pLevel;
        }

        public CharacterListItem(Parcel pIn)
        {
            characterID = UUID.fromString(pIn.readString());
            characterName = pIn.readString();
            characterClass = pIn.readString();
            characterLevel = pIn.readString();
        }

        public String getSummary()
        {
            if ((characterLevel != null) && !characterLevel.equals(""))
                return "Level " + characterLevel + " - " + characterClass;
            else
                return characterClass;
        }

        public int describeContents()
        {
            return 0;
        }

        public void writeToParcel(Parcel out, int flags)
        {
            out.writeString(characterID.toString());
            out.writeString(characterName);
            out.writeString(characterClass);
            out.writeString(characterLevel);
        }

        public static final Parcelable.Creator<CharacterListItem> CREATOR
                = new Parcelable.Creator<CharacterListItem>()
        {
            public CharacterListItem createFromParcel(Parcel in)
            {
                return new CharacterListItem(in);
            }

            public CharacterListItem[] newArray(int size)
            {
                return new CharacterListItem[size];
            }
        };
    }

    private static class CharacterListViewHolder
    {
        public UUID characterID;
        public ImageView gameView;  //image icon for game type
        public TextView nameView;   //title of char
        public TextView summaryView;//char summary
    }

    private static class CharacterListItemAdapter extends BaseAdapter
    {
        private ArrayList<CharacterListItem> mCharItems;

        private Context mContext;

        public CharacterListItemAdapter(Context pContext, ArrayList<CharacterListItem> pChars)
        {
            super();

            mContext = pContext;

            if (pChars != null)
                mCharItems = pChars;
            else
                mCharItems = new ArrayList<CharacterListItem>();
        }

        public void ClearItems()
        {
            mCharItems.clear();
        }

        public void AddItem(CharacterListItem pItem)
        {
            mCharItems.add(pItem);
        }

        public void InsertItem(CharacterListItem pItem, int pPos)
        {
            mCharItems.add(pPos, pItem);
        }

        @Override
        public int getCount()
        {
            if (mCharItems != null)
                return mCharItems.size() + 1;
            else
                return 1;
        }

        @Override
        public int getViewTypeCount()
        {
            return 1;
        }

        @Override
        public Object getItem(int pPosition)
        {
            if (mCharItems != null)
            {
                if (pPosition < mCharItems.size())
                    return mCharItems.get(pPosition);
                else
                    return null;
            }
            else
            {
                return null;
            }
        }

        @Override
        public long getItemId(int pPosition)
        {
            return pPosition;
        }

        @Override
        public View getView(int pPosition, View pConvertView, ViewGroup pParent)
        {
            ViewGroup lView = (ViewGroup) pConvertView;

            if (pConvertView == null)
            {
                lView = (ViewGroup) LayoutInflater.from(mContext).inflate(
                        R.layout.view_character_item, pParent, false);

                final CharacterListViewHolder lHolder = new CharacterListViewHolder();

                lHolder.gameView = (ImageView) lView.findViewById(R.id.ivGame);
                lHolder.nameView = (TextView) lView.findViewById(R.id.tvName);
                lHolder.summaryView = (TextView) lView.findViewById(R.id.tvSummary);

                lView.setOnClickListener(new View.OnClickListener()
                {

                    @Override
                    public void onClick(View pView)
                    {
                        Intent lIntent = new Intent(mContext, Activity_Charsheet.class);

                        lIntent.putExtra("CharacterID", lHolder.characterID);

                        mContext.startActivity(lIntent);
                    }
                });

                lView.setTag(lHolder);
            }

            if (pPosition < mCharItems.size())
            {
                final CharacterListItem lItem = mCharItems.get(pPosition);

                ((CharacterListViewHolder) lView.getTag()).characterID = lItem.characterID;
                ((CharacterListViewHolder) lView.getTag()).nameView.setTextColor(0xff4592ff);
                ((CharacterListViewHolder) lView.getTag()).nameView.setText(lItem.characterName);
                ((CharacterListViewHolder) lView.getTag()).summaryView.setText(lItem.getSummary());
            }
            else
            {
                ((CharacterListViewHolder) lView.getTag()).characterID = null;
                ((CharacterListViewHolder) lView.getTag()).nameView.setTextColor(0xff9a9a9a);
                ((CharacterListViewHolder) lView.getTag()).nameView.setText("Add Character");
                ((CharacterListViewHolder) lView.getTag()).summaryView.setText("");
            }

            return lView;
        }

        @Override
        public int getItemViewType(int pPosition)
        {
            if (pPosition < mCharItems.size())
            {
                final CharacterListItem lItem = mCharItems.get(pPosition);
                if (lItem != null)
                    return 0;
                else
                    return IGNORE_ITEM_VIEW_TYPE;
            }
            else
            {
                return 0;
            }
        }
    }
}




Java Source Code List

com.thing.rpg_droid.Utils.DieRoller.java
com.thing.rpg_droid.Utils.DieType.java
com.thing.rpg_droid.app.Activity_CharacterList.java
com.thing.rpg_droid.app.Activity_Charsheet.java
com.thing.rpg_droid.app.CharSheet_PageInfo.java
com.thing.rpg_droid.app.Fragment_CharacterList.java
com.thing.rpg_droid.app.ICharacter.java
com.thing.rpg_droid.app.PagerAdapter_Charsheet.java
com.thing.rpg_droid.app.ViewBinder.java
com.thing.rpg_droid.app.View_CharacterSheet_Field.java
com.thing.rpg_droid.app.dummy.DummyContent.java
com.thing.rpg_droid.pathfinder.Ability.java
com.thing.rpg_droid.pathfinder.Adapters.java
com.thing.rpg_droid.pathfinder.Appearance.java
com.thing.rpg_droid.pathfinder.ArmorClass.java
com.thing.rpg_droid.pathfinder.BodySlot.java
com.thing.rpg_droid.pathfinder.Character.java
com.thing.rpg_droid.pathfinder.Fragment_Basic.java
com.thing.rpg_droid.pathfinder.Fragment_Gear.java
com.thing.rpg_droid.pathfinder.Fragment_Skills.java
com.thing.rpg_droid.pathfinder.Fragment_Spells_Abilities.java
com.thing.rpg_droid.pathfinder.Fragment_Status.java
com.thing.rpg_droid.pathfinder.IInventoryLocation.java
com.thing.rpg_droid.pathfinder.Initiative.java
com.thing.rpg_droid.pathfinder.SavingThrow.java
com.thing.rpg_droid.pathfinder.SizeModifier.java
com.thing.rpg_droid.pathfinder.Skill.java
com.thing.rpg_droid.pathfinder.Spell.java
com.thing.rpg_droid.pathfinder.Status.java