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