布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp"> <TextView android:id="@+id/tishi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="选择理由,优化推荐"/> <Button android:id="@+id/submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:text="不想看"/> </RelativeLayout> <GridView android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="wrap_content" android:numColumns="2" android:horizontalSpacing="5dp" android:verticalSpacing="5dp"/> </LinearLayout>
MainActivity
public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)findViewById(R.id.but); } public void but(View v){ String [] strs ={"兵乓球","刘国梁","梁靖崑","国乒","来路不明","旧闻","内容质量差"}; final Map<Integer,Boolean> map =new HashMap<>(); View popView= View.inflate(this, R.layout.pop,null); GridView gridView= (GridView) popView.findViewById(R.id.gridview); final TextView tishi = (TextView) popView.findViewById(R.id.tishi); final Button submit = (Button) popView.findViewById(R.id.submit); gridView.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,strs)); gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if(map.containsKey(position)){ map.remove(position); ((TextView)view).setTextColor(Color.parseColor("#737373")); }else{ ((TextView)view).setTextColor(Color.RED); map.put(position,true); } if(map.size()>0){ tishi.setText("已选"+map.size()+"个理由"); submit.setText("确定"); }else{ tishi.setText("选择理由,优化推荐"); submit.setText("不想看"); } } }); final PopupWindow pop=new PopupWindow(popView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT,true); submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // if(map.size()>0) pop.dismiss(); // list.remove(pos); // adapter.notifyDataSetChanged(); } }); pop.showAsDropDown(v); } }