1. 程式人生 > >Android專案:仿微信聊天的刪除,置頂。

Android專案:仿微信聊天的刪除,置頂。

首先我們要重寫上下文選單方法onCreateContextMenu,從這個方法可以新增需要的條目按鈕,我們要在res/menu目錄下建議個weixin.xml檔案:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
        android:id="@+id/weidu"
        android:orderInCategory="101"
        android:showAsAction="never"
        android:title="未讀"/>
    <item 
        android:id="@+id/zhiding"
        android:orderInCategory="109"
        android:showAsAction="never"
        android:title="置頂"/>
    <item 
        android:id="@+id/shanchu"
        android:orderInCategory="102"
        android:showAsAction="never"
        android:title="刪除"/>

</menu>
再重寫onContextItemSelected,在這個裡面實現自己需要點選按鈕後需要實現的邏輯業務。

java程式碼如下:

package com.xh.tx.menue;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Message;
import android.view.ContextMenu;
import android.view.Menu;
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.TextView;
import android.widget.Toast;

public class MainActivity extends ListActivity {
	private ArrayList<String> date=null;
	private ArrayAdapter adapter;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//setContentView(R.layout.activity_main);
		//TextView tx=(TextView) findViewById(R.id.text);
		//tx.setOnCreateContextMenuListener(this);
		date=new ArrayList<String>();
		for(int i=0;i<50;i++){
			date.add("測試資料"+i);
		}
		adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1, date);
		setListAdapter(adapter);
		ListView lv=getListView();
		lv.setOnCreateContextMenuListener(this);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		switch (id) {
		case R.id.action_settings1:
			Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
			break;
		case R.id.action_settings2:
			Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
			break;
		case R.id.action_settings3:
			Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
			break;
		case R.id.action_settings4:
			Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
			break;
		
		}
		return super.onOptionsItemSelected(item);
	}
	@Override
	public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
		// TODO Auto-generated method stub
		getMenuInflater().inflate(R.menu.weixin, menu);
//		menu.add(1, 101, 0, "未讀");
//		menu.add(1, 102, 1, "置頂");
//		menu.add(1, 103, 2, "刪除");
		super.onCreateContextMenu(menu, v, menuInfo);
	}
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		AdapterContextMenuInfo info=(AdapterContextMenuInfo) item.getMenuInfo();
		final int pos=info.position;
		int id=item.getItemId();
		switch (id) {
		case R.id.weidu:
			Toast.makeText(this, item.getItemId()+"未讀"+R.id.weidu, Toast.LENGTH_LONG).show();
			break;
		case R.id.zhiding:
			AlertDialog dialog=new AlertDialog.Builder(this).create();
			dialog.setTitle("對話方塊");
			dialog.setMessage("是否置頂");
			dialog.setButton(AlertDialog.BUTTON_POSITIVE, "確認", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// TODO Auto-generated method stub
					String s=date.remove(pos);
					date.add(0, s);
					adapter.notifyDataSetChanged();
					Toast.makeText(getApplicationContext(), "置頂成功", Toast.LENGTH_LONG).show();
				}
			});
			dialog.setButton(AlertDialog.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// TODO Auto-generated method stub
					Toast.makeText(getApplicationContext(), "取消置頂", Toast.LENGTH_LONG).show();
				}
			});	
			dialog.show();
			break;
		case R.id.shanchu:
			AlertDialog dialog1=new AlertDialog.Builder(this).create();
			dialog1.setTitle("對話方塊");
			dialog1.setMessage("是否確認刪除內容");
			dialog1.setButton(AlertDialog.BUTTON_POSITIVE, "確認", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// TODO Auto-generated method stub
					date.remove(pos);
					adapter.notifyDataSetChanged();
					Toast.makeText(getApplicationContext(), "刪除成功", Toast.LENGTH_LONG).show();
				}
			});
			dialog1.setButton(AlertDialog.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// TODO Auto-generated method stub
					Toast.makeText(getApplicationContext(), "取消刪除", Toast.LENGTH_LONG).show();
				}
			});	
			dialog1.show();
			break;		
		}
		return super.onContextItemSelected(item);
	}
}
執行結果如下圖:



相關推薦

Android專案仿聊天刪除

首先我們要重寫上下文選單方法onCreateContextMenu,從這個方法可以新增需要的條目按鈕,我們要在res/menu目錄下建議個weixin.xml檔案: <?xml version="1.0" encoding="utf-8"?> <menu

Android開發仿和QQ空間發說說相簿讀取、拍照、圖片裁剪和圖片上傳伺服器等功能的實現

第一步:新增依賴包: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.2.1' compile project('

Python專案實現聊天機器人

說明,以下內容有很多個版本,都可以使用。自己根據日期分割來看看''' from wxpy import * from chatterbot import ChatBot from chatterbot.trainers import ChatterBotCorpusTra

HTML5+weui仿聊天功能、長按刪除功能

html5微信聊天 h5微信聊天界面最近由於項目需要, 就運用html5+css3+weui+jquery實現的微信聊天小案例,可發表圖像、紅包、打賞...功能, 還可以長按刪除消息。。。案例截圖如下:HTML及Js片段:<!DOCTYPE html><html lang="zh-cn"&g

Android GridView擴充套件仿博發圖動態新增刪除圖片

在平時的開發中,我們會看到不管是微信發朋友圈照片還是微博釋出新鮮事,新增圖片的時候都是選完後面還有個+號再去選擇圖片,這樣的話比較方便使用者去新增圖片,有的右上角還有個-號方便使用者去刪除圖片,而一般使用者選擇的圖片多少都是不定的,我們只限制最大張

HTML5仿聊天界面、朋友圈實例

很好 order 分享圖片 ext mount case 天使 inf 仿微信 這幾天使用H5開發了一個仿微信聊天前端界面,尤其微信底部編輯器那塊處理的很好,使用HTML5來開發,雖說功能效果並沒有微信那麽全,但是也相當不錯了,可以發送消息、表情,發送的消息自動回滾定位到底

web版仿聊天界面|h5仿電腦端案例開發

... http gen length false www. wrap 繼續 node 前幾天開發了一款手機端h5仿微信聊天,人唯有不停學習才能進步,這段時間倒騰著整理了下之前項目,又重新在原先的那版基礎上開發了一款仿微信聊天電腦端web版本,聊天頁面又重新優化了多圖預覽、

Netty Springboot仿聊天全棧實戰 從0開發到上線部署視頻教程

線程模型 win 主動 tomcat 高性能 手機端 線程 pen ade 下載地址:百度網盤下載 第1章 課程介紹本章首先讓大家徹底明白通過本課程的學習具體收獲有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹課程涉及到的技術棧等。1-1 課程介紹第2章 netty介

仿聊天介面長按彈框樣式

效果圖 背景 在公司做的專案裡面,剛好有需要用到微信聊天介面長按彈框樣式這種 UI 的。 網上找了一下,沒找到。 Android 現成的 ListPopupWindow 又不能滿足需求。 因此在非上班時間擼一個出來,供大家使用。 示例程式碼 關鍵檔案、示例程式

Netty/Springboot仿聊天全棧實戰 從0開發到上線部署

推薦視訊連結 第1章 課程介紹 本章首先讓大家徹底明白通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹課程涉及到的技術棧等。 第2章 netty介紹與相關基礎知識 初識netty,學習阻塞與非阻塞,同步與非同步,理解BIO、NIO

Netty/Springboot仿聊天全棧實戰 從0開發到上線部署(完整版)

第1章 課程介紹 課程介紹 第2章 netty介紹與相關基礎知識 初識netty,學習阻塞與非阻塞,同步與非同步,理解BIO、NIO、AIO以及netty的執行緒模型 第3章 使用netty編寫第一個hello netty 伺服器 從零開始使用netty編寫伺服器,在網頁

安卓開發-最簡單快速的仿聊天實現-附贈原生表情QQ原生表情

前言;正常實現聊天功能想必大家都使用三方的Sdk比如環信融雲集成的,但是聊天記錄的儲存只能有三天,想增加儲存時長就需要花錢,so 我只好自己想辦法實現了,這個demo是類似於留言板,並非即時通訊!只實現了表情文字圖文混排,可以通過手動重新整理實現即時通訊ok廢話少說,先看

android開發之仿輸入框效果

<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="50dp" android:layout_m

最簡單快速的仿聊天 demo

TestChatdemo 專案地址:PangHaHa12138/TestChatdemo  簡介:a demo for Android chat look like Weixin 最簡單快速的仿微信聊天 demo 附贈微信原生表情,qq 原生表情 更多:作者 &nbs

Android 仿通訊錄功能好友排序 + 字母索引

一、效果圖展示 二、功能特點 1.好友排序:按照拼音順序對好友進行排序,相容英文數字符號等 2.字母索引:右側字母導航條,既可拖動也可點選,聯動ListView滑動 三、實現 接下來就讓我們一步步顯示這個效果吧。 1.右側字母索引的導航條 這個我們可

Android 自定義仿網路載入彈出框

額,沒有餓了麼的動畫效果好看,但是,特別適用,拿來就用! 看一下效果圖 圖片素材 好了,其實很簡單,就是一個自定義Dialog的控制元件而已 1. 自定義view的style樣式

Python專案自動給女朋友每天一句英語問候

from __future__ import unicode_literals from threading import Timer from wxpy import * import request

Android程式設計之仿顯示更多文字的View

微信朋友圈中,如果好友發表的文字過長,會自動收縮起來,底下有提示,當點選“顯示更多”時才會展開。 首先定義佈局檔案(很簡單,不解釋): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:

iOS 即時通訊 + 仿聊天框架 + 原始碼

轉自:http://www.cnblogs.com/taoxu/p/5486417.html 即時通訊(IM),在iOS這片江湖裡面已經算是一個老者了,我這小旋風也是在很早以前巡山的時候,就知道有即時通訊這個妖怪,以前也多多少少接觸過一些,在造APP的時候用過,哎呀,

Android 獲取手機中聊天記錄

首先我們要知道,微信的聊天記錄一般是不提供給我們獲取的,所以一般情況下我們手機沒root的話就拿不到了。就算是root後的手機,想要獲取微信的EnMicroMsg.db檔案並且解密它、開啟它也有點難度。 下面我們就來演示怎麼從安卓裝置的手機中拿到微信的資料檔案