在程序界面建立一个ListView组件,组件分四行,每行三项,分别显示“赵林 男 20;钱杰 男 24;孙红 女 22;李成 男 29”,点击ListView组件某一行,在Toast组件中显示“你选择了XX”。
时间: 2024-03-11 18:50:05 浏览: 15
可以通过自定义Adapter来实现ListView的展示,并使用OnItemClickListener来监听ListView的点击事件,在点击事件中通过Toast来展示选择的内容。具体实现请参考以下代码:
1. 创建一个Model类,用于存储每一项的数据:
```
public class Person {
private String name;
private String gender;
private int age;
public Person(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
public String getName() {
return name;
}
public String getGender() {
return gender;
}
public int getAge() {
return age;
}
}
```
2. 创建一个自定义Adapter类,用于展示ListView中的每一项:
```
public class PersonAdapter extends BaseAdapter {
private List<Person> personList;
private Context context;
public PersonAdapter(List<Person> personList, Context context) {
this.personList = personList;
this.context = context;
}
@Override
public int getCount() {
return personList.size();
}
@Override
public Object getItem(int position) {
return personList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_person, parent, false);
holder = new ViewHolder();
holder.nameTextView = convertView.findViewById(R.id.name_text_view);
holder.genderTextView = convertView.findViewById(R.id.gender_text_view);
holder.ageTextView = convertView.findViewById(R.id.age_text_view);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Person person = personList.get(position);
holder.nameTextView.setText(person.getName());
holder.genderTextView.setText(person.getGender());
holder.ageTextView.setText(String.valueOf(person.getAge()));
return convertView;
}
private static class ViewHolder {
TextView nameTextView;
TextView genderTextView;
TextView ageTextView;
}
}
```
3. 在布局文件中添加ListView组件:
```
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
```
4. 在Activity中初始化ListView和Adapter,并设置OnItemClickListener:
```
public class MainActivity extends AppCompatActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<Person> personList = new ArrayList<>();
personList.add(new Person("赵林", "男", 20));
personList.add(new Person("钱杰", "男", 24));
personList.add(new Person("孙红", "女", 22));
personList.add(new Person("李成", "男", 29));
PersonAdapter adapter = new PersonAdapter(personList, this);
listView = findViewById(R.id.list_view);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String name = personList.get(position).getName();
Toast.makeText(MainActivity.this, "你选择了" + name, Toast.LENGTH_SHORT).show();
}
});
}
}
```
需要注意的是,item_person.xml文件是每一项的布局文件,可以根据需要自行定义。