ListView
ListView的简单用法
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends AppCompatActivity {
private String[] data = {"首页", "日志", "下载", "关于", "官网", "退出"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
data);
ListView listView = findViewById(R.id.main_listview_1);
listView.setAdapter(adapter);
}
}
自定义ListView
表项的布局
public class Emoji {
private String explain;
private int imageid;
public Emoji(String explain, int imageid) {
this.explain = explain;
this.imageid = imageid;
}
public String getExplain() {
return explain;
}
public int getImageid() {
return imageid;
}
}
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
public class EmojiAdapter extends ArrayAdapter<Emoji> {
private Context context;
private int resource;
private final String TAG = "debug";
public EmojiAdapter(Context context, int resource, List<Emoji> objects) {
super(context, resource, objects);
this.resource = resource;
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Emoji emoji = getItem(position);
View view;
ViewHolder viewHolder;
if (convertView == null) {
view = LayoutInflater.from(this.context).inflate(this.resource, parent, false);
viewHolder = new ViewHolder();
viewHolder.imageView = view.findViewById(R.id.list_item_imageview);
viewHolder.textView = view.findViewById(R.id.list_item_textview_explain);
view.setTag(viewHolder);
} else {
view = convertView;
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.imageView.setImageResource(emoji.getImageid());
viewHolder.textView.setText(emoji.getExplain());
return view;
}
class ViewHolder {
ImageView imageView;
TextView textView;
}
}
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import com.google.android.material.snackbar.Snackbar;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private ArrayList<Emoji> arrayList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initresource();
EmojiAdapter adapter = new EmojiAdapter(this, R.layout.list_view_item, arrayList);
ListView listView = findViewById(R.id.main_listview);
listView.setAdapter(adapter);
}
private void initresource() {
for (int i = 0; i < 5; i++) {
Emoji emoji = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_buman);
arrayList.add(emoji);
Emoji xhs_theme_xy_emo_deyi = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_deyi);
arrayList.add(xhs_theme_xy_emo_deyi);
Emoji xhs_theme_xy_emo_fanu = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_fanu);
arrayList.add(xhs_theme_xy_emo_fanu);
Emoji xhs_theme_xy_emo_fuhei = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_fuhei);
arrayList.add(xhs_theme_xy_emo_fuhei);
Emoji xhs_theme_xy_emo_haipa = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_haipa);
arrayList.add(xhs_theme_xy_emo_haipa);
Emoji xhs_theme_xy_emo_huoli = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_huoli);
arrayList.add(xhs_theme_xy_emo_huoli);
Emoji xhs_theme_xy_emo_keshui = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_keshui);
arrayList.add(xhs_theme_xy_emo_keshui);
Emoji xhs_theme_xy_emo_koubi = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_koubi);
arrayList.add(xhs_theme_xy_emo_koubi);
Emoji xhs_theme_xy_emo_kuku = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_kuku);
arrayList.add(xhs_theme_xy_emo_kuku);
Emoji xhs_theme_xy_emo_shaonv = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_shaonv);
arrayList.add(xhs_theme_xy_emo_shaonv);
Emoji xhs_theme_xy_emo_shengqi = new Emoji("描述说明", R.drawable.xhs_theme_xy_emo_shengqi);
arrayList.add(xhs_theme_xy_emo_shengqi);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.list_item_imageview:
Snackbar.make(v, "点击了ImageView", Snackbar.LENGTH_SHORT).setAction("Action", null).show();
break;
case R.id.list_item_textview_explain:
Snackbar.make(v, "点击了TextView", Snackbar.LENGTH_SHORT).setAction("Action", null).show();
break;
default:
break;
}
}
}