package com.door43.translationstudio.util; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.door43.translationstudio.R; import java.util.ArrayList; /** * The tool adapter allows you to easily create a ListView full of tools */ public class ToolAdapter extends BaseAdapter { private Context mContext; private ArrayList<ToolItem> mTools; public ToolAdapter(ArrayList<ToolItem> tools, Context context) { mTools = tools; mContext = context; } @Override public int getCount() { return mTools.size(); } @Override public ToolItem getItem(int i) { return mTools.get(i); } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View recycledView, ViewGroup viewGroup) { LinearLayout view; // build or reuse layout if(recycledView == null) { LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = (LinearLayout)inflater.inflate(R.layout.fragment_tool_item, null); } else { view = (LinearLayout)recycledView; } // title TextView titleText = (TextView)view.findViewById(R.id.toolTitleText); titleText.setText(getItem(i).getName()); // description TextView descriptionText = (TextView)view.findViewById(R.id.toolDescriptionText); descriptionText.setText(getItem(i).getDescription()); if(getItem(i).getDescription().isEmpty()) { descriptionText.setVisibility(View.GONE); } else { descriptionText.setVisibility(View.VISIBLE); } // image ImageView iconImage = (ImageView)view.findViewById(R.id.toolIconImageView); if(getItem(i).getIcon() > 0) { iconImage.setVisibility(View.VISIBLE); iconImage.setBackgroundResource(getItem(i).getIcon()); } else { iconImage.setVisibility(View.GONE); } // mark tool as disabled. if (!getItem(i).isEnabled()) { titleText.setTextColor(mContext.getResources().getColor(R.color.gray)); } else { titleText.setTextColor(mContext.getResources().getColor(R.color.dark_gray)); } return view; } }