Custom ListView android

public class DataModel { String name; String type; String version_number; String feature; public DataModel[String name, String type, String version_number, String feature ] { this.name=name; this.type=type; this.version_number=version_number; this.feature=feature; } public String getName[] { return name; } public String getType[] { return type; } public String getVersion_number[] { return version_number; } public String getFeature[] { return feature; } } public class CustomAdapter extends ArrayAdapter implements View.OnClickListener{ private ArrayList dataSet; Context mContext; // View lookup cache private static class ViewHolder { TextView txtName; TextView txtType; TextView txtVersion; ImageView info; } public CustomAdapter[ArrayList data, Context context] { super[context, R.layout.row_item, data]; this.dataSet = data; this.mContext=context; } @Override public void onClick[View v] { int position=[Integer] v.getTag[]; Object object= getItem[position]; DataModel dataModel=[DataModel]object; switch [v.getId[]] { case R.id.item_info: Snackbar.make[v, "Release date " +dataModel.getFeature[], Snackbar.LENGTH_LONG] .setAction["No action", null].show[]; break; } } private int lastPosition = -1; @Override public View getView[int position, View convertView, ViewGroup parent] { // Get the data item for this position DataModel dataModel = getItem[position]; // Check if an existing view is being reused, otherwise inflate the view ViewHolder viewHolder; // view lookup cache stored in tag final View result; if [convertView == null] { viewHolder = new ViewHolder[]; LayoutInflater inflater = LayoutInflater.from[getContext[]]; convertView = inflater.inflate[R.layout.row_item, parent, false]; viewHolder.txtName = [TextView] convertView.findViewById[R.id.name]; viewHolder.txtType = [TextView] convertView.findViewById[R.id.type]; viewHolder.txtVersion = [TextView] convertView.findViewById[R.id.version_number]; viewHolder.info = [ImageView] convertView.findViewById[R.id.item_info]; result=convertView; convertView.setTag[viewHolder]; } else { viewHolder = [ViewHolder] convertView.getTag[]; result=convertView; } Animation animation = AnimationUtils.loadAnimation[mContext, [position > lastPosition] ? R.anim.up_from_bottom : R.anim.down_from_top]; result.startAnimation[animation]; lastPosition = position; viewHolder.txtName.setText[dataModel.getName[]]; viewHolder.txtType.setText[dataModel.getType[]]; viewHolder.txtVersion.setText[dataModel.getVersion_number[]]; viewHolder.info.setOnClickListener[this]; viewHolder.info.setTag[position]; // Return the completed view to render on screen return convertView; } } public class MainActivity extends AppCompatActivity { ArrayList dataModels; ListView listView; private static CustomAdapter adapter; @Override protected void onCreate[Bundle savedInstanceState] { super.onCreate[savedInstanceState]; setContentView[R.layout.activity_main]; Toolbar toolbar = [Toolbar] findViewById[R.id.toolbar]; setSupportActionBar[toolbar]; listView=[ListView]findViewById[R.id.list]; dataModels= new ArrayList[]; dataModels.add[new DataModel["Apple Pie", "Android 1.0", "1","September 23, 2008"]]; dataModels.add[new DataModel["Banana Bread", "Android 1.1", "2","February 9, 2009"]]; dataModels.add[new DataModel["Cupcake", "Android 1.5", "3","April 27, 2009"]]; dataModels.add[new DataModel["Donut","Android 1.6","4","September 15, 2009"]]; dataModels.add[new DataModel["Eclair", "Android 2.0", "5","October 26, 2009"]]; dataModels.add[new DataModel["Froyo", "Android 2.2", "8","May 20, 2010"]]; dataModels.add[new DataModel["Gingerbread", "Android 2.3", "9","December 6, 2010"]]; dataModels.add[new DataModel["Honeycomb","Android 3.0","11","February 22, 2011"]]; dataModels.add[new DataModel["Ice Cream Sandwich", "Android 4.0", "14","October 18, 2011"]]; dataModels.add[new DataModel["Jelly Bean", "Android 4.2", "16","July 9, 2012"]]; dataModels.add[new DataModel["Kitkat", "Android 4.4", "19","October 31, 2013"]]; dataModels.add[new DataModel["Lollipop","Android 5.0","21","November 12, 2014"]]; dataModels.add[new DataModel["Marshmallow", "Android 6.0", "23","October 5, 2015"]]; adapter= new CustomAdapter[dataModels,getApplicationContext[]]; listView.setAdapter[adapter]; listView.setOnItemClickListener[new AdapterView.OnItemClickListener[] { @Override public void onItemClick[AdapterView parent, View view, int position, long id] { DataModel dataModel= dataModels.get[position]; Snackbar.make[view, dataModel.getName[]+"\n"+dataModel.getType[]+" API: "+dataModel.getVersion_number[], Snackbar.LENGTH_LONG] .setAction["No action", null].show[]; } }]; } @Override public boolean onCreateOptionsMenu[Menu menu] { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater[].inflate[R.menu.menu_main, menu]; return true; } @Override public boolean onOptionsItemSelected[MenuItem item] { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId[]; //noinspection SimplifiableIfStatement if [id == R.id.action_settings] { return true; } return super.onOptionsItemSelected[item]; } }

Video liên quan

Chủ Đề