ArrayAdapter

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".activity.MainActivity">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/listView"></ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"/>

</LinearLayout>
package com.pingyijinren.helloworld.model;

/**
 * Created by Administrator on 2016/6/2 0002.
 */
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;
    }
}
package com.pingyijinren.helloworld.adapter;

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 com.pingyijinren.helloworld.R;
import com.pingyijinren.helloworld.model.Fruit;
import java.util.List;

/**
 * Created by Administrator on 2016/6/2 0002.
 */
public class FruitAdapter extends ArrayAdapter<Fruit>{

    public FruitAdapter(Context context, int resource, List<Fruit> objects) {
        super(context, resource, objects);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Fruit fruit=getItem(position);
        View view;
        ViewHolder viewHolder;
        if(convertView==null){
            view= LayoutInflater.from(getContext()).inflate(R.layout.fruit_item,null);
            viewHolder=new ViewHolder();
            viewHolder.imageView=(ImageView)view.findViewById(R.id.imageView);
            viewHolder.textView=(TextView)view.findViewById(R.id.textView);
            view.setTag(viewHolder);
        }
        else{
            view=convertView;
            viewHolder=(ViewHolder)view.getTag();
        }
        viewHolder.imageView.setImageResource(fruit.getImageId());
        viewHolder.textView.setText(fruit.getName());
        return view;
    }
    class ViewHolder{
        ImageView imageView;
        TextView textView;
    }
}
package com.pingyijinren.helloworld.activity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import com.pingyijinren.helloworld.R;
import com.pingyijinren.helloworld.adapter.FruitAdapter;
import com.pingyijinren.helloworld.model.Fruit;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    private ArrayList<Fruit> arrayList;
    private FruitAdapter fruitAdapter;
    private ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        arrayList=new ArrayList<Fruit>();
        arrayList.add(new Fruit("苹果",R.mipmap.ic_launcher));
        arrayList.add(new Fruit("香蕉",R.mipmap.ic_launcher));
        fruitAdapter=new FruitAdapter(this,R.layout.fruit_item,arrayList);

        listView=(ListView)findViewById(R.id.listView);
        listView.setAdapter(fruitAdapter);
        registerForContextMenu(listView);   //注册上下文菜单
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("选择操作");
        menu.add(Menu.NONE,Menu.FIRST+1,1,"删除");
        menu.add(Menu.NONE,Menu.FIRST+2,2,"取消");
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterView.AdapterContextMenuInfo adapterContextMenuInfo=(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
        int positon=adapterContextMenuInfo.position;
        switch (item.getItemId()){
            case Menu.FIRST+1:
                arrayList.remove(positon);
                fruitAdapter.notifyDataSetChanged();
                break;
            case Menu.FIRST+2:
                Toast.makeText(this,"您点击了取消",Toast.LENGTH_SHORT).show();
                break;
        }
        return super.onContextItemSelected(item);
    }
}
原文地址:https://www.cnblogs.com/zqxLonely/p/5552837.html