<?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);
}
}