public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView myListView = (ListView) findViewById(R.id.myListView);
ArrayList<User> users = new ArrayList<>();
int[] icons = {
R.mipmap.ic_launcher,
R.mipmap.ic_launcher,
R.mipmap.ic_launcher,
};
String[] names = {
"maroni1",
"maroni2",
"maroni3",
};
String[] locs = {
"US",
"UK",
"JP",
};
for (int i = 0; i < icons.length; i++) {
User user = new User();
user.setIcon(BitmapFactory.decodeResource(
getResources(),
icons[i]
));
user.setName(names[i]);
user.setLocation(locs[i]);
users.add(user);
}
UserAdapter adapter = new UserAdapter(this, 0, users);
// for (int i = 0; i < 30; i++) {
// items.add("item-" + i);
// }
//
// ArrayAdapter<String> adapter = new ArrayAdapter<String>(
// this,
// R.layout.list_item,
// items
// );
//
myListView.setEmptyView(findViewById(R.id.emptyView));
myListView.setAdapter(adapter);
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(
AdapterView<?> parent,
View view,
int position,
long id
) {
TextView name = (TextView)view.findViewById(R.id.name);
Toast.makeText(
MainActivity.this,
Integer.toString(position) + ":" + name.getText().toString(),
Toast.LENGTH_SHORT
).show();
}
});
}
public class UserAdapter extends ArrayAdapter<User> {
private LayoutInflater layoutInflater;
public UserAdapter(Context context, int resource, ArrayList<User> users) {
super(context, resource, users);
this.layoutInflater = (LayoutInflater) context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE
);
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(
R.layout.list_item,
parent,
false
);
holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
holder.name = (TextView) convertView.findViewById(R.id.name);
holder.location = (TextView) convertView.findViewById(R.id.loc);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
User user = (User) getItem(position);
holder.icon.setImageBitmap(user.getIcon());
holder.name.setText(user.getName());
holder.location.setText(user.getLocation());
return convertView;
}
}
static class ViewHolder {
ImageView icon;
TextView name;
TextView location;
}
public class User {
private Bitmap icon;
private String name;
private String location;
public Bitmap getIcon() {
return icon;
}
public void setIcon(Bitmap icon) {
this.icon = icon;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
}