package com.daviancorp.android.ui.detail; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.support.v4.widget.CursorAdapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import com.daviancorp.android.data.classes.HuntingReward; import com.daviancorp.android.data.database.HuntingRewardCursor; import com.daviancorp.android.loader.HuntingRewardListCursorLoader; import com.daviancorp.android.mh3udatabase.R; public class ItemMonsterFragment extends ListFragment implements LoaderCallbacks<Cursor> { private static final String ARG_ITEM_ID = "ITEM_ID"; public static ItemMonsterFragment newInstance(long itemId) { Bundle args = new Bundle(); args.putLong(ARG_ITEM_ID, itemId); ItemMonsterFragment f = new ItemMonsterFragment(); f.setArguments(args); return f; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Initialize the loader to load the list of runs getLoaderManager().initLoader(R.id.item_monster_fragment, getArguments(), this); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_item_monster_list, null); return v; } @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { // You only ever load the runs, so assume this is the case long itemId = args.getLong(ARG_ITEM_ID, -1); return new HuntingRewardListCursorLoader(getActivity(), HuntingRewardListCursorLoader.FROM_ITEM, itemId, null); } @Override public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { // Create an adapter to point at this cursor ItemHuntingRewardListCursorAdapter adapter = new ItemHuntingRewardListCursorAdapter( getActivity(), (HuntingRewardCursor) cursor); setListAdapter(adapter); } @Override public void onLoaderReset(Loader<Cursor> loader) { // Stop using the cursor (via the adapter) setListAdapter(null); } @Override public void onListItemClick(ListView l, View v, int position, long id) { // The id argument will be the Monster ID; CursorAdapter gives us this // for free long monsterId = (long) v.getTag(); if (monsterId == 2) { monsterId = 1; } else if (monsterId == 4) { monsterId = 3; } else if ((monsterId >=6) && (monsterId <= 10)) { monsterId = 5; } else if ((monsterId >= 12) && (monsterId <= 16)) { monsterId = 11; } else if ((monsterId >= 18) && (monsterId <= 23)) { monsterId = 17; } Intent i = new Intent(getActivity(), MonsterDetailActivity.class); i.putExtra(MonsterDetailActivity.EXTRA_MONSTER_ID, monsterId); startActivity(i); } private static class ItemHuntingRewardListCursorAdapter extends CursorAdapter { private HuntingRewardCursor mHuntingRewardCursor; public ItemHuntingRewardListCursorAdapter(Context context, HuntingRewardCursor cursor) { super(context, cursor, 0); mHuntingRewardCursor = cursor; } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { // Use a layout inflater to get a row view LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); return inflater.inflate(R.layout.fragment_item_monster_listitem, parent, false); } @Override public void bindView(View view, Context context, Cursor cursor) { // Get the item for the current row HuntingReward huntingReward = mHuntingRewardCursor.getHuntingReward(); // Set up the text view LinearLayout itemLayout = (LinearLayout) view.findViewById(R.id.listitem); TextView rankTextView = (TextView) view.findViewById(R.id.rank); TextView monsterTextView = (TextView) view.findViewById(R.id.monster); TextView methodTextView = (TextView) view.findViewById(R.id.method); TextView amountTextView = (TextView) view.findViewById(R.id.amount); TextView percentageTextView = (TextView) view .findViewById(R.id.percentage); String cellRankText = huntingReward.getRank(); String cellMonsterText = huntingReward.getMonster().getName(); String cellTraitText = huntingReward.getMonster().getTrait(); String cellMethodText = huntingReward.getCondition(); int cellAmountText = huntingReward.getStackSize(); int cellPercentageText = huntingReward.getPercentage(); if (!cellTraitText.equals("")) { cellMonsterText = cellMonsterText + " (" + cellTraitText + ")"; } rankTextView.setText(cellRankText); monsterTextView.setText(cellMonsterText); methodTextView.setText(cellMethodText); amountTextView.setText("" + cellAmountText); String percent = "" + cellPercentageText + "%"; percentageTextView.setText(percent); itemLayout.setTag(huntingReward.getMonster().getId()); // TextView itemNameTextView = (TextView) view; // String cellText = huntingReward.getMonster().getName() + "\t\t\t\t" + huntingReward.getLocation(); // itemNameTextView.setText(cellText); // // itemNameTextView.setTag(huntingReward.getMonster().getId()); } } }