android listview 增删除修改item

一共要xml文件二个,item.xml, activity_main.xml

class类三个, fruit, fruitAdapter, mainactivity

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="50dp"
        android:layout_height="50dp" />
    <TextView
        android:id="@+id/fruit_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/item_button_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="增加"
        />
    <Button
        android:id="@+id/item_button_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="删除"
        />
    <Button
        android:id="@+id/item_button_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="修改"
        />



</LinearLayout>

mainlayout.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:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="123456"
        />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/button_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="增加"
            />
        <Button
            android:id="@+id/button_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="删除"
            />
        <Button
            android:id="@+id/button_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="增加"
            />
        <Button
            android:id="@+id/button_4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="增加"
            />


    </LinearLayout>

    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


    </ListView>


</LinearLayout>

fruit.class

package com.chat.test_okhttp;

/**
 * @Description: java类作用描述
 * @Author: 唐朝
 * @UpdateUser: 更新者
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 * 日期:2020/2/9$
 */
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;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setImageId(int imageId) {
        this.imageId = imageId;
    }
}

mainactivity.xml

package com.chat.test_okhttp;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private ListView listView;
    private EditText editText;
    private Button button_1;
    private Button button_2;
    private Button button_3;
    private Button button_4;

    private List<fruit> dataList = new ArrayList<>();
    public FruitAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();

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

        initDataList();
         adapter = new FruitAdapter(MainActivity.this, dataList);

        listView.setAdapter(adapter);
    }
    private void initView(){
        editText = (EditText) findViewById(R.id.editText);
        button_1 = (Button) findViewById(R.id.button_1);
        button_2 = (Button) findViewById(R.id.button_2);
        button_3 = (Button) findViewById(R.id.button_3);
        button_4 = (Button) findViewById(R.id.button_4);


        button_1.setOnClickListener(this);
        button_2.setOnClickListener(this);
        button_3.setOnClickListener(this);
        button_4.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.button_1:
                fruit fruit_1 = new fruit("forget_add" + dataList.size(), R.drawable.ic_launcher_background);
                dataList.add(fruit_1);
                adapter.notifyDataSetChanged();

                break;
            case R.id.button_2:
                break;
            case R.id.button_3:
                break;
            case R.id.button_4:
                break;
            default:
                break;
        }
    }

    private void deleteButton(int position){

        dataList.remove(position);


    }
    private void initDataList(){
        for(int i=0; i<10; ++i){
            fruit temp = new fruit( "abc_" + i, R.drawable.ic_launcher_background);
            dataList.add(temp);
        }
    };
}

FruitAdapter

package com.chat.test_okhttp;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.lang.annotation.Retention;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.List;

/**
 * @Description: java类作用描述
 * @Author: 唐朝
 * @UpdateUser: 更新者
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 * 日期:2020/2/9$
 */
public class FruitAdapter extends BaseAdapter{

    private Context mContext;

    private List<fruit> fruitList;

    private LayoutInflater inflater;

    public FruitAdapter(Context context, List<fruit> fruitList){
        this.mContext = context;
        this.fruitList = fruitList;
        this.inflater = LayoutInflater.from(context);
    }
    @Override
    public int getCount(){
        return fruitList.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        View view = inflater.inflate(R.layout.item, null);
        ImageView imageView = (ImageView) view.findViewById(R.id.fruit_image);
        TextView textView = (TextView) view.findViewById(R.id.fruit_name);

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(mContext, fruitList.get(position).getName(), Toast.LENGTH_SHORT).show();
            }
        });

        Button button_1 = (Button) view.findViewById(R.id.item_button_1);
        button_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addButtonAction(fruitList.size());
            }
        });
        Button button_2 = (Button) view.findViewById(R.id.item_button_2);
        button_2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                deleteButtonAction(position);
            }
        });
        Button button_3 = (Button) view.findViewById(R.id.item_button_3);
        button_3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                updateButtonAction(position);
            }
        });

        fruit fruit_1 = fruitList.get(position);

        imageView.setImageResource(fruit_1.getImageId());
        textView.setText(fruit_1.getName());

        return view;
    }
    private void addButtonAction(int position){
        fruit fruit_1 = new fruit("add_" + fruitList.size(), R.drawable.ic_launcher_background);
        fruitList.add(position, fruit_1);
        notifyDataSetChanged();
    }
    private void deleteButtonAction(int position){
        fruitList.remove(position);
        notifyDataSetChanged();
    }
    private void updateButtonAction(int position){
        fruit fruit_1 = fruitList.get(position);
        fruit_1.setName("update_" + position);
        fruitList.set(position, fruit_1);
        notifyDataSetChanged();

    }
}
发布了112 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/julicliy/article/details/104235565