Android (ListActivity、Contextmenu)微信類訊息置頂和刪除和功能的實現
阿新 • • 發佈:2019-02-12
結果圖如下:package com.example.ContextMenudemo2; import java.util.ArrayList; import android.app.ListActivity; import android.os.Bundle; import android.view.ContextMenu; import android.view.MenuItem; import android.view.View; import android.view.ContextMenu.ContextMenuInfo; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class MainActivity extends ListActivity { private ArrayAdapter adapter = null; private ArrayList<String> list = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); list = new ArrayList<String>(); adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,list); for(int i = 1;i<40;i++){ list.add("微信訊息測試"+i); } this.setListAdapter(adapter); ListView lv = this.getListView(); lv.setOnCreateContextMenuListener(this); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(0, 1001, 1, "標記為未讀"); menu.add(0, 1002, 1, "置頂聊天"); menu.add(0, 1003, 1, "刪除該聊天"); super.onCreateContextMenu(menu, v, menuInfo); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); int pos = info.position; int id = item.getItemId(); if(id==1003){ list.remove(pos); adapter.notifyDataSetChanged(); Toast.makeText(getApplicationContext(), "已刪除", Toast.LENGTH_SHORT).show(); } if(id==1002){ String s = list.get(pos); list.remove(pos); list.add(0, s); adapter.notifyDataSetChanged(); Toast.makeText(getApplicationContext(), "置頂成功", Toast.LENGTH_SHORT).show(); } return super.onContextItemSelected(item); } }