Android滚动菜单ListView实例详解

本文实例为大家分享了Android使用ListView实现滚动菜单的具体代码,供大家参考,具体内容如下

说明:滚动菜单ListView及点击事件

代码结构:

1、创建一个list展示模型

app\src\main\res\layout\fruit_item.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="horizontal"

android:layout_width="match_parent"

android:layout_height="match_parent">

<ImageView

android:id="@+id/fruit_image"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

<TextView

android:id="@+id/fruit_name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center_vertical"

android:layout_marginLeft="10dp"/>

</LinearLayout>

2、主界面引用一下

app\src\main\res\layout\activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

<ListView

android:id="@+id/list_view"

android:layout_width="match_parent"

android:layout_height="match_parent" />

</LinearLayout>

3、创建fruit类

app\src\main\java\com\example\listviewtest\Fruit.java

package com.example.listviewtest;

public class Fruit {

private String name;

private int imageId;

public Fruit(String name,int imageId){

this.name = name;

this.imageId = imageId;

}

public String getName(){

return name;

}

public int getImageId(){

return imageId;

}

}

4、创建适配器

app\src\main\java\com\example\listviewtest\FruitAdapter.java

package com.example.listviewtest;

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 FruitAdapter extends ArrayAdapter<Fruit> {

private int resourceId;

public FruitAdapter(Context context,

int textViewResourceId,

List<Fruit> object){

super(context,textViewResourceId,object);

resourceId = textViewResourceId;

}

public View getView(int position, View converView, ViewGroup parent){

Fruit fruit = getItem(position);

View view = LayoutInflater.from(getContext()).inflate(resourceId,parent,false);

ImageView fruitImage = (ImageView) view.findViewById(R.id.fruit_image);

TextView fruitName = (TextView) view.findViewById(R.id.fruit_name);

fruitImage.setImageResource(fruit.getImageId());

fruitName.setText(fruit.getName());

return view;

}

}

5、主内容

app\src\main\java\com\example\listviewtest\MainActivity.java

package com.example.listviewtest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends AppCompatActivity {

private List<Fruit> fruitList = new ArrayList<>();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initFruits();//初始化水果数据

FruitAdapter adapter = new FruitAdapter(MainActivity.this,R.layout.fruit_item,fruitList);

ListView listView = (ListView) findViewById(R.id.list_view);

listView.setAdapter(adapter);

//响应点击事件

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

Fruit fruit = fruitList.get(i);

Toast.makeText(MainActivity.this,fruit.getName(),Toast.LENGTH_SHORT).show();

}

});

}

private void initFruits(){

for (int i=0;i<2;i++){

Fruit apple = new Fruit("Apple",R.drawable.apple_pic);

fruitList.add(apple);

Fruit banana = new Fruit("Banana",R.drawable.banana_pic);

fruitList.add(banana);

Fruit cherry = new Fruit("Cherry",R.drawable.cherry_pic);

fruitList.add(cherry);

Fruit grape = new Fruit("Grape",R.drawable.grape_pic);

fruitList.add(grape);

Fruit mango = new Fruit("Mango",R.drawable.mango_pic);

fruitList.add(mango);

Fruit orange = new Fruit("Orange",R.drawable.orange_pic);

fruitList.add(orange);

Fruit pear = new Fruit("Pear",R.drawable.pear_pic);

fruitList.add(pear);

Fruit pineapple = new Fruit("Pineapple",R.drawable.pineapple_pic);

fruitList.add(pineapple);

Fruit strawberry = new Fruit("Strawberry",R.drawable.strawberry_pic);

fruitList.add(strawberry);

Fruit watermeion = new Fruit("Watermeion",R.drawable.watermeion_pic);

fruitList.add(watermeion);

}

}

}

运行展示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是 Android滚动菜单ListView实例详解 的全部内容, 来源链接: utcz.com/p/243983.html

回到顶部