package com.example.popupwindowlistview;
import java.util.ArrayList;
import com.example.popupwindowlistview.adapter.MyAdapter;
import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
public class MainActivity extends Activity {
private ListView listView;
private ArrayList<String> arrayList;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listview);
arrayList = new ArrayList<String>();
for (int i = 0; i < 20; i++) {
arrayList.add("你好" + i);
}
adapter = new MyAdapter(arrayList, this);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> parent,
final View view, final int position, long id) {
final ImageView imageView = (ImageView) view
.findViewById(R.id.image);
View view2 = View
.inflate(MainActivity.this, R.layout.pop, null);
final PopupWindow pop = new PopupWindow(view2,
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
TextView textView = (TextView) view2.findViewById(R.id.delete);
TextView textView2 = (TextView) view2.findViewById(R.id.read);
TextView textView3 = (TextView) view2
.findViewById(R.id.shoucang);
ImageView imageView2 = (ImageView) view2
.findViewById(R.id.dismiss);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int[] a = new int[2];
imageView.getLocationOnScreen(a);
pop.setFocusable(true);
// pop.setTouchable(true);
pop.setBackgroundDrawable(new BitmapDrawable());
pop.setOutsideTouchable(true);
pop.showAtLocation(imageView, 0, a[0], a[1]);
// pop.showAsDropDown(imageView);
}
});
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
arrayList.remove(position);
adapter.notifyDataSetChanged();
pop.dismiss();
}
});
imageView2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
pop.dismiss();
}
});
}
});
}
}
import java.util.ArrayList;
import com.example.popupwindowlistview.adapter.MyAdapter;
import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
public class MainActivity extends Activity {
private ListView listView;
private ArrayList<String> arrayList;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listview);
arrayList = new ArrayList<String>();
for (int i = 0; i < 20; i++) {
arrayList.add("你好" + i);
}
adapter = new MyAdapter(arrayList, this);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> parent,
final View view, final int position, long id) {
final ImageView imageView = (ImageView) view
.findViewById(R.id.image);
View view2 = View
.inflate(MainActivity.this, R.layout.pop, null);
final PopupWindow pop = new PopupWindow(view2,
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
TextView textView = (TextView) view2.findViewById(R.id.delete);
TextView textView2 = (TextView) view2.findViewById(R.id.read);
TextView textView3 = (TextView) view2
.findViewById(R.id.shoucang);
ImageView imageView2 = (ImageView) view2
.findViewById(R.id.dismiss);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int[] a = new int[2];
imageView.getLocationOnScreen(a);
pop.setFocusable(true);
// pop.setTouchable(true);
pop.setBackgroundDrawable(new BitmapDrawable());
pop.setOutsideTouchable(true);
pop.showAtLocation(imageView, 0, a[0], a[1]);
// pop.showAsDropDown(imageView);
}
});
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
arrayList.remove(position);
adapter.notifyDataSetChanged();
pop.dismiss();
}
});
imageView2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
pop.dismiss();
}
});
}
});
}
}