苹果7耳机接口口处裂了还能修吗

&>&&>&&>&&>&Android】ListView监听上下滑动实现一键置顶
Android】ListView监听上下滑动实现一键置顶
上传大小:636KB
ListView监听上下滑动,下拉刷新和上拉加载实现一键置顶
综合评分:4.8(5位用户评分)
所需积分:1
下载次数:106
审核通过送C币
创建者:ohcezzz
创建者:qq_
创建者:redwolfchao
课程推荐相关知识库
上传者其他资源上传者专辑
移动开发热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
Android】ListView监听上下滑动实现一键置顶
会员到期时间:剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:网上很多基于Socket的聊天实现都是不完整的。。。
结合自己的经验给大家分享一下,完整代码可以在GitHub里获取
1.废话不多说,附主要的Client类
package com.boyaa.push.lib.
import java.io.IOE
import java.io.InputS
import java.io.OutputS
import java.net.InetSocketA
import java.net.S
import java.net.SocketE
import java.util.I
import java.util.concurrent.LinkedBlockingQ
import android.content.C
import android.util.L
import com.boyaa.push.lib.util.NetworkU
* @author Administrator
public class Client {
private final int STATE_OPEN=1;//socket打开
private final int STATE_CLOSE=1&&1;//socket关闭
private final int STATE_CONNECT_START=1&&2;//开始连接server
private final int STATE_CONNECT_SUCCESS=1&&3;//连接成功
private final int STATE_CONNECT_FAILED=1&&4;//连接失败
private final int STATE_CONNECT_WAIT=1&&5;//等待连接
private String IP="192.168.1.100";
private int PORT=60000;
private int state=STATE_CONNECT_START;
private Socket socket=
private OutputStream outStream=
private InputStream inStream=
private Thread conn=
private Thread send=
private Thread rec=
private ISocketResponse respL
private LinkedBlockingQueue&Packet& requestQueen=new LinkedBlockingQueue&Packet&();
private final Object lock=new Object();
public int send(Packet in)
requestQueen.add(in);
synchronized (lock)
lock.notifyAll();
return in.getId();
public void cancel(int reqId)
Iterator&Packet& mIterator=requestQueen.iterator();
while (mIterator.hasNext())
Packet packet=mIterator.next();
if(packet.getId()==reqId)
mIterator.remove();
public Client(Context context,ISocketResponse respListener)
this.context=
this.respListener=respL
public boolean isNeedConn()
return !((state==STATE_CONNECT_SUCCESS)&&(null!=send&&send.isAlive())&&(null!=rec&&rec.isAlive()));
public void open()
public void open(String host,int port)
this.PORT=
private long lastConnTime=0;
public synchronized void reconn()
if(System.currentTimeMillis()-lastConnTime&2000)
lastConnTime=System.currentTimeMillis();
state=STATE_OPEN;
conn=new Thread(new Conn());
conn.start();
public synchronized void close()
if(state!=STATE_CLOSE)
if(null!=socket)
socket.close();
} catch (Exception e) {
e.printStackTrace();
if(null!=outStream)
outStream.close();
} catch (Exception e) {
e.printStackTrace();
outStream=
if(null!=inStream)
inStream.close();
} catch (Exception e) {
e.printStackTrace();
if(null!=conn&&conn.isAlive())
conn.interrupt();
} catch (Exception e) {
e.printStackTrace();
if(null!=send&&send.isAlive())
send.interrupt();
} catch (Exception e) {
e.printStackTrace();
if(null!=rec&&rec.isAlive())
rec.interrupt();
} catch (Exception e) {
e.printStackTrace();
state=STATE_CLOSE;
requestQueen.clear();
private class Conn implements Runnable
public void run() {
while(state!=STATE_CLOSE)
state=STATE_CONNECT_START;
socket=new Socket();
socket.connect(new InetSocketAddress(IP, PORT), 15*1000);
state=STATE_CONNECT_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
state=STATE_CONNECT_FAILED;
if(state==STATE_CONNECT_SUCCESS)
outStream=socket.getOutputStream();
inStream=socket.getInputStream();
} catch (IOException e) {
e.printStackTrace();
send=new Thread(new Send());
rec=new Thread(new Rec());
send.start();
rec.start();
state=STATE_CONNECT_WAIT;
//如果有网络没有连接上,则定时取连接,没有网络则直接退出
if(NetworkUtil.isNetworkAvailable(context))
Thread.sleep(15*1000);
} catch (InterruptedException e) {
e.printStackTrace();
private class Send implements Runnable
public void run() {
while(state!=STATE_CLOSE&&state==STATE_CONNECT_SUCCESS&&null!=outStream)
while(null!=(item=requestQueen.poll()))
outStream.write(item.getPacket());
outStream.flush();
synchronized (lock)
lock.wait();
}catch(SocketException e1)
e1.printStackTrace();//发送的时候出现异常,说明socket被关闭了(服务器关闭)java.net.SocketException: sendto failed: EPIPE (Broken pipe)
catch (Exception e) {
e.printStackTrace();
private class Rec implements Runnable
public void run() {
while(state!=STATE_CLOSE&&state==STATE_CONNECT_SUCCESS&&null!=inStream)
byte[] bodyBytes=new byte[5];
int offset=0;
int length=5;
int read=0;
while((read=inStream.read(bodyBytes, offset, length))&0)
if(length-read==0)
if(null!=respListener)
respListener.onSocketResponse(new String(bodyBytes));
reconn();//走到这一步,说明服务器socket断了
catch(SocketException e1)
e1.printStackTrace();//客户端主动socket.close()会调用这里 java.net.SocketException: Socket closed
catch (Exception e2) {
e2.printStackTrace();
2.使用SocketTool工具进行调试
a.创建Server.点击TCP Server ,点击创建,输入端口号,点击确定(同时要点击启动监听)。
b.在android客户端输入IP和端口,点击打开或者重连,socketTool便可以看见你连上的Client了
c.在客户端输入要发送的文字,点击发送,在socketTool便可以看到你往server里发送的数据了,
在socketTool里输入要往客户端发送的内容,点击发送,便可在手机客户端里看到Server往client发送的数据了
这样就可以Client-Server之间进行数据对发了。
阅读(...) 评论()WhatsApp安卓版本有聊天置顶功能-今日焦点-中国材料网
&&&&&&&&&&&
WhatsApp安卓版本有聊天置顶功能
来源:中国材料网
上个月,开发者希望推出一项新功能到应用程序,对于WhatsApp的测试在固定聊天的形式。对于那些谁不熟悉或可能已经错过了消息,基本上就是这样做的,它可以让用户引用聊天记录。  这意味着,不管推出新的消息,这些聊天记录将永远留在上面。如果有聊天记录是重要的,你不想错过这是很方便的。话虽这么说,似乎功能现在已完成测试,并推送给Android用户,所以如果你有一个Android设备和使用WhatsApp,请留意更新。  据WhatsApp表示:“有了固定的聊天记录,你永远不必担心通过对话的一长串滚动的文字干扰。现在,用户可以针最多三个最重要的团体或个人,方便他们的聊天在聊天列表顶部的,需点击并按住聊天,然后点击图标在屏幕顶部的”。  对于iOS用户,似乎功能还需要等待,但我们估计它可能不需等待太长。
【】【】【】【收藏】【关闭窗口】
上一篇:下一篇:
············
(注:网友评论仅供网友个人看法,并不表示中国材料网同意其观点或证实其描述!) 发表评论
输入验证码:
最多输入200字符!
··········
··········
··········
··········
英文网址:
浙ICP备号 Copyright
All Rights Reserved&&&&&&2062人阅读
群里面有朋友问起微信的聊天置顶功能,一朋友建议使用LinkedList,貌似很简单的说。特动手实践一番。
在listview中实现点击后置顶的效果,上代码
public View getView(int position, View convertView, ViewGroup parent) {
View view = inflater.inflate(R.layout.imgtxt,null);
final ImgTxtBean b = getItem(position);
final String textStr=b.getText();
ImageView image = (ImageView)view.findViewById(R.id.img);
TextView text = (TextView)view.findViewById(R.id.txt);
text.setText(b.getText());
if(b.getResid()&0){
image.setBackgroundResource(b.getResid());
// 曾打算在这里实现每次应用打开的时候初始化实现记录的置顶项
temp=getValue(PC_KEY);
// boolean flag=
// if (null!=temp&&!&&.equals(temp)) {
// if (!flag) {
// list.addFirst(b);
// notifyDataSetChanged();
view.setOnClickListener(new OnClickListener() {
void onClick(View arg0){
//把要置顶的该项先从列表中移除
list.remove(b);
//把该项置顶
list.addFirst(b);
//置顶后,保存该项。便于下次应用重启时读取
beanKey=b.getText();
saveValueByKey(PC_KEY,beanKey);
//刷新列表
notifyDataSetChanged();
这样就实现了点击置顶的效果。
但是我们会发现,当我们每次重新登陆微信的时候,之前的置顶项还在。而我们做的这个,退出应用重新打开的时候,又恢复了原样。好吧,既然如此那就继续。
首先,我们得把我们每次点击后置顶的选项保存起来,然后在每次登陆的时候去找我们的保存的记录。找到记录后,把该项置顶。这样就实现了我们要求的功能。
我们保存记录使用SharedPreferences保存在本地。当然如果我们需要实现在任何一部设备上保留上次的置顶操作时,我们就需要使用到服务器的远程保存了。
* 写入配置文件
@param key 以什么名字保存
@param value 保存的值
publicvoid saveValueByKey(Stringkey,
String value){
// 载入配置文件
SharedPreferences sp = context.getSharedPreferences(
PC_NAME, Context.MODE_PRIVATE);
// 写入配置文件
Editor spEd = sp.edit();
spEd.putString(key, value);
spEd.commit();
保存已经OK,接着我们在应用打开的时候,再读取该配置实现置顶效果
* 获取值,调用方式必须是 getValue(&userSalted&)
public String getValue(String key) {
String flag = &&;
SharedPreferences sp = context.getSharedPreferences(
PC_NAME, 0);
flag = sp.getString(key,
读取配置,进行比对,并置顶
String temp=getValue(PC_KEY);
for (int i = 0; i & list.size(); i++) {
ImgTxtBean b =list.get(i);
if (null!=temp&&!&&.equals(temp)) {
if (temp.equalsIgnoreCase(b.getText())) {
list.remove(b);
list.addFirst(b);
// list.addFirst(b);
当我们进行置顶操作的时候,要把链表中的置顶项要移除了,要不然会出现重复值。语文没学好,见谅。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:53839次
排名:千里之外
(2)(1)(1)(1)(1)(3)(2)(2)(1)(1)(5)(1)(1)(1)(2)(2)

我要回帖

更多关于 处修失败裂开的图片 的文章

 

随机推荐