import java.util.ArrayList;

 import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView; public class MainActivity extends Activity {
EditText et;
Button btn;
ListView lv;
MyAdapter mMyAdapter;
ArrayList<String> date; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); date = new ArrayList<String>();
et = (EditText) findViewById(R.id.et1);
btn = (Button) findViewById(R.id.btn1);
lv = (ListView) findViewById(R.id.lv); mMyAdapter = new MyAdapter(this, R.layout.list);
// 设置ListView的适配器 (ArrayAdapter适配器的用法)
lv.setAdapter(mMyAdapter); btn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
sendmessage();
}
});
} public void sendmessage() {
date.add(et.getText().toString());
mMyAdapter.notifyDataSetChanged();
// 发送完设置输入框为空
et.setText(null);
// 发送消息后将ListView滚动到最下方
lv.setSelection(ListView.FOCUS_DOWN);
} public class MyAdapter extends ArrayAdapter {
private Context context;
private int resource; public MyAdapter(Context context, int resource) {
super(context, resource);
this.resource = resource;
this.context = context;
} @Override
public int getCount() { return date.size();
} @Override
public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater flater = LayoutInflater.from(context);
// 设置可以复用view
if (convertView == null) {
convertView = flater.inflate(resource, null);
}
TextView tv = (TextView) convertView.findViewById(R.id.qqtxt);
tv.setText(date.get(position)); return convertView;
} }
}

xml文件:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" > <ImageView
android:id="@+id/ImageView1"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/meimei" /> <TextView
android:id="@+id/qqtxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/ImageView1"
android:background="#ff5252"
android:text="1233"
android:textSize="20sp" /> </RelativeLayout>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.lixu.qqduihua.MainActivity" > <ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/commentLinearLayout"
android:layout_alignParentTop="true"
android:divider="@android:color/transparent"
android:dividerHeight="15dip"
android:scrollbars="none" /> <LinearLayout
android:id="@+id/commentLinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#e0e0e0"
android:orientation="horizontal" > <EditText
android:id="@+id/et1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:ems="10"
android:hint="请输入内容" > <requestFocus />
</EditText> <Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/round"
android:text="发送" />
</LinearLayout> </RelativeLayout>

运行效果:

ArrayAdapter适配器的用法,模拟QQ发消息界面。的更多相关文章

  1. python qq发消息

    # 原理是先将需要发送的文本放到剪贴板中,然后将剪贴板内容发送到qq窗口 # 之后模拟按键发送enter键发送消息 import win32gui import win32con import win ...

  2. vbs脚本实现qq定时发消息(初级)

    vbs脚本实现QQ消息定时发送 目标 批处理又称为批处理脚本,强大的强大功能可以高效得实现很多功能,例如批量更改文件格式,批量进行文件读写,今天我们的目标是用vbs脚本编写可以发送qq消息的脚本,并利 ...

  3. HTTP POST发消息

    业务需求:模拟TANX给DSP发消息,protobuf数据已弄好. 代码: def PostDataToDSP(self,url,postdata): headers = { #taobao文档规定 ...

  4. Android简易实战教程--第二十二话《自定义组合控件模拟qq登录下拉框和其中的一些”小技巧”》

    转载此文章请注明出处:点击打开链接   http://blog.csdn.net/qq_32059827/article/details/52313516 首先,很荣幸此专栏能被CSDN推荐到主页.荣 ...

  5. 关于 使用python向qq好友发送消息(对爬虫的作用----当程序执行完毕或者报错无限给自己qq发送消息,直到关闭)

    以前看到网上一些小程序,在处理完事物后会自动发送qq消息,但是一直搞不懂是说明原理.也在网上找过一些python登陆qq发送消息的文字,但是都太复杂了.今天偶然看到一篇文章,是用python调用win ...

  6. 通过程序调用微信公众号发消息api返回48001

    自己的订阅号,尝试通过写程序来给用户发消息.结果呢,接口返回报错:errcode=48001,errmsg = api unauthorized hint: [ZlPULa02942276!] 去微信 ...

  7. socket 服务器向指定的客户端发消息

    一.需求 需求如题. 当多个客户端连接服务器时,服务器如何给指定的客户端发送消息. 二.解决方案 核心思想: 在服务器端,需保存不同客户端的socket列表及客户端相关信息. socket含有发送方和 ...

  8. NIO【同步非阻塞io模型】关于 NIO socket 的详细总结【Java客户端+Java服务端 + 业务层】【可以客户端间发消息】

    1.前言 以前使用 websocket来实现双向通信,如今深入了解了 NIO 同步非阻塞io模型 , 优势是 处理效率很高,吞吐量巨大,能很快处理大文件,不仅可以 做 文件io操作, 还可以做sock ...

  9. C#给其他程序发消息

    1.相关声明函数,SendMessage可定义两种格式. [DllImport("User32.DLL", CharSet = CharSet.Auto)]public stati ...

随机推荐

  1. iOS - Swift available 平台判断

    前言 Swift 语言中的 @available 和 #available,Swift 2.0 中,引入了可用性的概念.对于函数,类,协议等,可以使用 @available 声明这些类型的生命周期依赖 ...

  2. 硬盘坏道 检测/修复 Windows

    1. 主要参看了:http://jingyan.baidu.com/article/2c8c281dfd93df0008252a9b.html 2. 2.1.hdtunepro.zip 是在 http ...

  3. Java中的JDBC数据库连接

    JDBC编程步骤 1.加载数据库驱动. // 加载驱动 Class.forName(driverClass) // 加载mysql驱动 Class.forName("com.mysql.jd ...

  4. hdu 1575 Tr A(矩阵快速幂)

    今天做的第二道矩阵快速幂题,因为是初次接触,各种奇葩错误整整调试了一下午.废话不说,入正题.该题应该属于矩阵快速幂的裸题了吧,知道快速幂原理(二进制迭代法,非递归版)后,剩下的只是处理矩阵乘法的功夫了 ...

  5. linux 文件类型 文件权限

    linux中常见的文件类型有: “—”表示普通文件 :-rw-r--r-- 1 root root 41727 07-13 02:56 install.log   “d”表示目录 :drwxr-xr- ...

  6. [js] 有趣的js面试题,你答对了吗?

    题目1: 回答以下代码,alert的值分别是多少?

  7. js 中文乱码

    js合成url时,如果参数是中文,传到struts2中会乱码,解决办法如下:1.js文件中使用encodeURI()方法(必须套两层).login_name = encodeURI(encodeURI ...

  8. 20160816_Redis一些资料

    1.官网 http://redis.io/ 2.一个教程 http://www.yiibai.com/redis/redis_quick_guide.html 3.快速开始指南(Quick Start ...

  9. GreenPlum简单性能测试与分析

    版权声明:本文由黄辉原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/195 来源:腾云阁 https://www.qclou ...

  10. 各大互联网公司2014前端笔试面试题–JavaScript篇

    很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习js更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确, ...