每次登录QQ会话列表都有一些不良会话痕迹,简直莫名其妙造句,求怎样删除,下次登录不在显示?如图所示。

QQ软件怎么删除最近联系人/会话列表?选择字号:
单个删除方法:
在最近联系人列表=》选中要删除的联系人=》点击右键=》在下拉菜单中选择从最近联系列表移除,QQ2013beta2及以上版本需要您在会话=》选中要删除的会话=》点击右键=》下拉菜单中选择从会话列表移除。
全部删除方法:
登录QQ=》QQ面板=》最近联系人=》点击图标后面的小箭头=》在下拉列表中选择清空最近联系人列表,QQ2013beta2及以上版本需要您在会话=》点击后面的小箭头=》下拉列表中选择清空会话列表。
以上信息是否已解决您的问题?为什么电脑上QQ会话列表清空了之后,下次上线之后还是有原来的纪录,如何只显示最近的记录而不是1年前的?-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
为什么电脑上QQ会话列表清空了之后,下次上线之后还是有原来的纪录,如何只显示最近的记录而不是1年前的?
来源:互联网 发表时间: 7:11:59 责任编辑:鲁晓倩字体:
为了帮助网友解决“为什么电脑上QQ会话列表清空了之后,下次上线之后还是有原来的纪录,如何只显示最近的记录而不是1年前的?”相关的问题,中国学网通过互联网对“为什么电脑上QQ会话列表清空了之后,下次上线之后还是有原来的纪录,如何只显示最近的记录而不是1年前的?”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:为什么电脑上QQ会话列表清空了之后,下次上线之后还是有原来的纪录,如何只显示最近的记录而不是1年前的?,具体解决方案如下:解决方案1:卸载qq也没用,是最新版的qq。解决方案2:现在的QQ所有的记录都会自动备份云端的了,所以你删除必须要也云端的也删除了。在QQ设置里面可以设置,如果是想把本电脑的QQ聊天记录删除,那么你找到你QQ的临时文件夹,找到你Q号的文件夹删除就OK。
1个回答1个回答9个回答1个回答1个回答6个回答1个回答1个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号我过来的另外一个QQ里经常有这样的消息提示。可当我登陆的时候却没有消息。怎么回事,怎样可以删掉?联_百度知道手机数码相关分类
本类热门阅览
常用装机软件
QQ怎么一键清空会话列表 qq会话列表怎么清空
作者:佚名&&来源:华彩软件站&&发布时间: 01:52:09
QQ几乎是我们人手必备的一款聊天软件,我们在进行QQ聊天之后会在最近的联系人列表中有记录。那么我们这么清空这个联系人的列表呢?想知道的请看小编下面的步骤
一个一个移除方法如下图
一键清空快捷方法:
把鼠标移至到会话旁边,就可以看到一个下三角形,点击就可以看到&清空会话列表&,这样就方便多了。
QQ怎么一键清空会话列表 qq会话列表怎么清空由华彩软件站为您最新收集整理,版权归原作者或公司所有。如有侵权,请与我们联系删除。
?上一文章:
?下一文章:android技术知(1)
最近无聊,看了很多关于QQ列表侧滑删除的文章和技术文档,结合许多整理一下内容。
侧滑结构如图:
所需填充的数据由“文本”和“删除”2部分组成。代码如下
content.xml
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="#97d8da"
android:gravity="center"
android:orientation="vertical"&
android:id="@+id/Content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text"
android:gravity="center"
android:textSize="24dp"
delete.xml:
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="/apk/res/android"
android:id="@+id/Delete"
android:layout_width="130dp"
android:layout_height="60dp"
android:background="#ff0000"
android:gravity="center"
android:orientation="vertical"&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删除"
android:textSize="24dp"
android:textColor="#ffffff"
ok,既然这2个做好了,那么就到最关键的一步了。就是当我们滑动“文本”和“删除”这一个整体的时候,我们所需要注意的需要删除控件的长度,直接贴代码:
DeleteListView:
import android.content.C
import android.support.v4.widget.ViewDragH
import android.util.AttributeS
import android.view.MotionE
import android.view.V
import android.view.ViewG
public class DeleteListView extends ViewGroup{
private View mC
private View mD
private ViewDragHelper viewDragH
private int mContentW
private int mContentH
private int mDeleteW
private int mDeleteH
public SlideDelete(Context context) {
super(context);
public SlideDelete(Context context, AttributeSet attrs) {
super(context, attrs);
public SlideDelete(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
private OnSlideDeleteListener onSlideDeleteL
public void setOnSlideDeleteListener(OnSlideDeleteListener onSlideDeleteListener){
this.onSlideDeleteListener = onSlideDeleteL
protected void onFinishInflate() {
super.onFinishInflate();
mContent = getChildAt(0);
mDelete = getChildAt(1);
viewDragHelper = ViewDragHelper.create(this,new MyDrawHelper());
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
mContent.measure(widthMeasureSpec,heightMeasureSpec);
LayoutParams layoutParams = mDelete.getLayoutParams();
int deleteWidth = MeasureSpec.makeMeasureSpec(
layoutParams.width, MeasureSpec.EXACTLY);
int deleteHeight = MeasureSpec.makeMeasureSpec(
layoutParams.height, MeasureSpec.EXACTLY);
mDelete.measure(deleteWidth, deleteHeight);
setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
protected void onLayout(boolean changed, int l, int t, int r, int b) {
mContentWidth = mContent.getMeasuredWidth();
mContentHeight = mContent.getMeasuredHeight();
mContent.layout(0, 0, mContentWidth, mContentHeight);
mDeleteWidth = mDelete.getMeasuredWidth();
mDeleteHeight = mDelete.getMeasuredHeight();
mDelete.layout(mContentWidth, 0,mContentWidth +
mDeleteWidth, mContentHeight);
class MyDrawHelper extends ViewDragHelper.Callback {
* Touch的down事件会回调这个方法 tryCaptureView
*:指定要动的孩子
(哪个孩子需要动起来)
*: 点的标记
* : ViewDragHelper是否继续分析处理 child的相关touch事件
public boolean tryCaptureView(View child, int pointerId) {
System.out.println("调用tryCaptureView");
System.out.println("contentView : " + (mContent == child));
return mContent == child || mDelete ==
* 捕获了水平方向移动的位移数据
* child 移动的孩子View
* left 父容器的左上角到孩子View的距离
* dx 增量值,其实就是移动的孩子View的左上角距离控件(父亲)的距离,包含正负
public int clampViewPositionHorizontal(View child, int left, int dx) {
if(child == mContent){
if(left&0){
}else if(-left&mDeleteWidth){
return -mDeleteW
if(child == mDelete){
if(left&mContentWidth - mDeleteWidth){
return mContentWidth - mDeleteW
}else if(left & mContentWidth){
return mContentW
public int clampViewPositionVertical(View child, int top, int dy) {
return super.clampViewPositionVertical(child, top, dy);
* 当View的位置改变时的回调
这个方法的价值是结合clampViewPositionHorizontal
* 或者clampViewPositionVertical
* changedView
哪个View的位置改变了
changedView的left
changedView的top
* dx x方向的上的增量值
* dy y方向上的增量值
public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) {
invalidate();
if(changedView == mContent){
int tempDeleteLeft = mContentWidth+
int tempDeleteRight = mContentWidth+left + mDeleteW
mDelete.layout(tempDeleteLeft,0,tempDeleteRight,mDeleteHeight);
int tempContentLeft = left - mContentW
int tempContentRight =
mContent.layout(tempContentLeft,0,tempContentRight,mContentHeight);
* 相当于Touch的up的事件会回调onViewReleased这个方法
* releasedChild
x方向的速率
y方向的速率
public void onViewReleased(View releasedChild, float xvel, float yvel) {
int mConLeft = mContent.getLeft();
if(-mConLeft&mDeleteWidth/2){
isShowDelete(true);
if(onSlideDeleteListener != null){
onSlideDeleteListener.onOpen(SlideDelete.this);
isShowDelete(false);
if(onSlideDeleteListener != null){
onSlideDeleteListener.onClose(SlideDelete.this);
super.onViewReleased(releasedChild, xvel, yvel);
* 是否展示delete部分
* isShowDelete
public void isShowDelete(boolean isShowDelete){
if(isShowDelete){
viewDragHelper.smoothSlideViewTo(mContent,-mDeleteWidth,0);
viewDragHelper.smoothSlideViewTo(mDelete,mContentWidth-mDeleteWidth,0);
viewDragHelper.smoothSlideViewTo(mContent, 0, 0);
viewDragHelper.smoothSlideViewTo(mDelete, mContentWidth, 0);
invalidate();
public void computeScroll() {
if(viewDragHelper.continueSettling(true)){
invalidate();
public boolean onTouchEvent(MotionEvent event) {
viewDragHelper.processTouchEvent(event);
return true;
public interface OnSlideDeleteListener {
void onOpen(SlideDelete slideDelete);
void onClose(SlideDelete slideDelete);
最主要的我们既然做完了,那么就可以开始剩下的工作的:实现我们需要的功能!
将之前我们写的2个layou文件include到一个item.xml文件中:
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"&
android:id="@+id/mSlideDelete"
android:layout_width="match_parent"
android:layout_height="60dp"&
layout="@layout/slide_content"/&
layout="@layout/slide_delete"/&
然后我们在activity_main.xml中添加代码:
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.listview_delete.MainActivity" &
android:id="@+id/mLv"
android:layout_width="match_parent"
android:layout_height="match_parent"&&
MainActivity.java:
import java.util.ArrayL
import java.util.L
import java.util.ListI
import android.app.A
import android.os.B
import android.util.L
import android.view.V
import android.view.ViewG
import android.widget.AbsListV
import android.widget.BaseA
import android.widget.LinearL
import android.widget.ListV
import android.widget.TextV
public class MainActivity extends Activity {
private ListView mLv;
private ArrayList&String& mD
private List&DeleteListView& slideDeleteArrayList = new ArrayList&DeleteListView&();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLv = (ListView) findViewById(R.id.mLv);
mData=new ArrayList&String&();
for(int i=0;i&20;i++){
mData.add("Text"+i);
mLv.setAdapter(new MyAdapter());
mLv.setOnScrollListener(new AbsListView.OnScrollListener() {
public void onScrollStateChanged(AbsListView view, int scrollState) {
if(scrollState == SCROLL_STATE_FLING || scrollState == SCROLL_STATE_TOUCH_SCROLL){
closeOtherItem();
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
class MyAdapter extends BaseAdapter{
public int getCount() {
if(mData!=null){
return mData.size();
public Object getItem(int position) {
if(mData!=null){
return mData.get(position);
return null;
public long getItemId(int position) {
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewH
if(convertView == null){
viewHolder = new ViewHolder();
convertView = View.inflate(MainActivity.this,R.layout.item,null);
viewHolder.mSlideDelete = (DeleteListView) convertView.findViewById(R.id.mSlideDelete);
viewHolder.mTvContent = (TextView) convertView.findViewById(R.id.Content);
viewHolder.mLlDelete = (LinearLayout) convertView.findViewById(R.id.Delete);
convertView.setTag(viewHolder);
viewHolder = (ViewHolder) convertView.getTag();
viewHolder.mTvContent.setText(mData.get(position));
viewHolder.mSlideDelete.setOnSlideDeleteListener(new DeleteListView.OnSlideDeleteListener() {
public void onOpen(DeleteListView slideDelete) {
closeOtherItem();
slideDeleteArrayList.add(slideDelete);
Log.d("Slide", "slideDeleteArrayList当前数量:" + slideDeleteArrayList.size());
public void onClose(DeleteListView slideDelete) {
slideDeleteArrayList.remove(slideDelete);
Log.d("Slide", "slideDeleteArrayList当前数量:" + slideDeleteArrayList.size());
viewHolder.mLlDelete.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mData.remove(position);
notifyDataSetChanged();
return convertV
class ViewHolder{
DeleteListView mSlideD
TextView mTvC
LinearLayout mLlD
private void closeOtherItem(){
ListIterator&DeleteListView& slideDeleteListIterator = slideDeleteArrayList.listIterator();
while(slideDeleteListIterator.hasNext()){
DeleteListView slideDelete = slideDeleteListIterator.next();
slideDelete.isShowDelete(false);
slideDeleteArrayList.clear();
大致代码就像上面的一样了,此外发现一些bug,不能快速左划删除,另外,当我们左划到一定程度,可以看见删除的时候,这时你点击删除,会发现一个问题:就是你选中的被删除了,但是其下面一条则是被选择像又滑动的状态。
能力有限,只能到这里,希望大家多多指教。
由于刚刚上传源码,所以链接的话还要等,需要的可以私聊我(一般都有空。。。)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:53次
排名:千里之外

我要回帖

更多关于 莫名其妙 的文章

 

随机推荐