当前位置:  编程技术>移动开发
本页文章导读:
    ▪TextSwitcher运用示例        TextSwitcher使用示例mainActivity如下: package c.c; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.AnimationUtils; import android.widget.Tex.........
    ▪ 哈希表算法兑现        哈希表算法实现哈希表算法实现 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WINXP 开发环境:MINGW 说明: 本程序建立的哈希表示意图: 哈希函数为对哈希表长取.........
    ▪ JQuery MObile入门——增添尾部栏按钮       JQuery MObile入门——添加尾部栏按钮1、尾部栏与头部栏结构差不多,区别是设置的data-role属性值不同,为了减少各按钮间的距离,通常需要在按钮的外围添加一个data-role属性值为controlgroup的容.........

[1]TextSwitcher运用示例
    来源: 互联网  发布时间: 2014-02-18
TextSwitcher使用示例

mainActivity如下:

package c.c;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AnimationUtils;
import android.widget.TextSwitcher;
import android.widget.TextView;
import android.widget.ViewSwitcher.ViewFactory;
public class MainActivity extends Activity {
    private TextSwitcher mIextSwitcher;
    private String texts [];
    private int textIndex=0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        init();
    }
   private void init(){
	   texts=new String[]{"空山新雨后","天气晚来秋","明月松间照","清泉石上流"};
	   mIextSwitcher=(TextSwitcher) findViewById(R.id.textSwitcher);
	   //设置用于显示文字的TextView
	   mIextSwitcher.setFactory(new ViewFactory() {
		public View makeView() {
			TextView textView=new TextView(MainActivity.this);
			textView.setTextSize(30);
			return textView;
		 }
	   });
	   //处理点击事件
	   mIextSwitcher.setOnClickListener(new ClickListenerImpl());
	   //设置文字进入和退出动画
	   mIextSwitcher.setInAnimation
	   (AnimationUtils.loadAnimation(MainActivity.this, android.R.anim.slide_in_left));
	   mIextSwitcher.setOutAnimation
	   (AnimationUtils.loadAnimation(MainActivity.this, android.R.anim.slide_in_left));
	   //设置初始时显示的文字
	   mIextSwitcher.setText(texts[textIndex]);
   }

	private class ClickListenerImpl implements OnClickListener {
		public void onClick(View v) {
			textIndex++;
			if (textIndex == texts.length) {
				textIndex = 0;
			}
			 mIextSwitcher.setText(texts[textIndex]);
		}

	}
}


main.xml如下:

<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" >

   <TextSwitcher
       android:id="@+id/textSwitcher" 
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_centerInParent="true"
   />

</RelativeLayout>


 


    
[2] 哈希表算法兑现
    来源: 互联网  发布时间: 2014-02-18
哈希表算法实现

哈希表算法实现


本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.


环境:

主机:WINXP

开发环境:MINGW


说明:

本程序建立的哈希表示意图:


哈希函数为对哈希表长取余


源代码:

/*********************************************************************
*						   哈希表算法实现
*						(c)copyright 2013,jdh
*						  All Right Reserved
*文件名:main.c
*程序员:jdh
**********************************************************************/

#include <stdio.h>
#include <stdlib.h>

/*********************************************************************
*							宏定义
**********************************************************************/

/*********************************************************************
*							数据类型重定义
**********************************************************************/

#define uint8_t unsigned char
#define uint16_t unsigned short
#define uint32_t unsigned long

/*********************************************************************
*							哈希表长度
**********************************************************************/

#define HASH_TABLE_LEN	128

/*********************************************************************
*							数据结构
**********************************************************************/
//链表节点
typedef struct _Link_Node  
{  
    uint16_t id;
	uint16_t data;
    struct _Link_Node *next;  
}Link_Node,*Link_Node_Ptr; 

//哈希表头
typedef struct _Hash_Header  
{  
    struct _Link_Node *next;  
}Hash_Header,*Hash_Header_Ptr;

/*********************************************************************
*							全局变量
**********************************************************************/

//哈希表
Hash_Header_Ptr Hash_Table[HASH_TABLE_LEN];

/*********************************************************************
*							函数
**********************************************************************/

/*********************************************************************
*							哈希表函数
*说明:
*1.用哈希函数生成id对应的哈希表中的位置
输入:id
返回:位置
**********************************************************************/

uint8_t hash_func(uint16_t id)
{
	uint8_t pos = 0;
	
	pos = id % HASH_TABLE_LEN;

	return pos;
}

/*********************************************************************
*							初始化节点
*返回:结点指针
**********************************************************************/

Link_Node_Ptr init_link_node(void)
{
	Link_Node_Ptr node;
	
	//申请节点
	node = (Link_Node_Ptr) malloc(sizeof(Link_Node));
	//初始化长度为0
	node->next = NULL;
	
	return node;
}

/*********************************************************************
*							初始化哈希表头结点
*返回哈希表头结点指针
**********************************************************************/

Hash_Header_Ptr init_hash_header_node(void)
{
	Hash_Header_Ptr node;
	
	//申请节点
	node = (Hash_Header_Ptr) malloc(sizeof(Hash_Header));
	//初始化长度为0
	node->next = NULL;
	
	return node;
}


/*********************************************************************
*							哈希表初始化
*说明:
*1.初始化哈希表Hash_Table
*2.哈希表长度最大不能超过256
**********************************************************************/

void init_hash_table(void)
{
	uint8_t i = 0;
	
	for (i = 0;i < HASH_TABLE_LEN;i++)
	{
		Hash_Table[i] = init_hash_header_node();
		Hash_Table[i]->next = NULL;
	}
}

/*********************************************************************
*							在哈希表增加节点
*说明:
*1.在哈希表的某个链表末增加数据
输入:new_node:新节点
**********************************************************************/

void append_link_node(Link_Node_Ptr new_node)
{
	Link_Node_Ptr node;
	uint8_t pos = 0;
	
	//用哈希函数获得位置
	pos = hash_func(new_node->id);
	
	//判断是否为空链表
	if (Hash_Table[pos]->next == NULL)
	{
		//空链表
		Hash_Table[pos]->next = new_node;
	}
	else
	{
		//不是空链表
		//获取根节点
		node = Hash_Table[pos]->next;
	
		//遍历
		while (node != NULL && node->next != NULL)
		{
			node = node->next;
		}
		
		//插入
		node->next = new_node;
	}
}

/*********************************************************************
*							在哈希表查询节点
*说明:
*1.知道在哈希表某处的单链表中,并开始遍历.
*2.返回的是查询节点的前一个节点指针.这么做是为了做删除操作.
输入:pos:哈希表数组位置,从0开始计数
     id:所需要查询节点的id
     root:如果是根节点,则*root = 1,否则为0
返回:所需查询的节点的前一个节点指针,如果是根节点则返回根节点,失败返回0
**********************************************************************/

Link_Node_Ptr search_link_node(uint16_t id,uint8_t *root)
{
	Link_Node_Ptr node;
	uint8_t pos = 0;
	
	//用哈希函数获得位置
	pos = hash_func(id);
	
	//获取根节点
	node = Hash_Table[pos]->next;
	
	//判断单链表是否存在
	if (node == NULL)
	{
		return 0;
	}
	
	//判断是否是根节点
	if (node->id == id)
	{
		//是根节点
		*root = 1;
		return node;
	}
	else
	{
		//不是根节点
		*root = 0;
		//遍历
		while (node->next != NULL)
		{
			if (node->next->id == id)
			{
				return node;
			}
			else
			{
				node = node->next;
			}
		}
		
		return 0;
	}
}

/*********************************************************************
*							在哈希表删除节点
*说明:
*1.删除的不是当前节点,而是当前节点后的一个节点
输入:node:删除此节点后面的一个节点
     new_node:新节点
**********************************************************************/

void delete_link_node(Link_Node_Ptr node)
{
	Link_Node_Ptr delete_node;
	
	//重定向需要删除的前一个节点
	delete_node = node->next;
	node->next = delete_node->next;
	
	//删除节点
	free(delete_node);
	delete_node = NULL;
}

/*********************************************************************
*							在哈希表删除根节点
输入:node:根节点
**********************************************************************/

void delete_link_root_node(Link_Node_Ptr node)
{
	uint8_t pos = 0;
	
	//用哈希函数获得位置
	pos = hash_func(node->id);
	
	//哈希表头清空
	Hash_Table[pos]->next = NULL;
	
	//删除节点
	free(node);
	node = NULL;
}

/*********************************************************************
*							主函数
*说明:实现对哈希表的新建,建立节点,查询及增加,删除节点的操作
**********************************************************************/

int main()
{
	Link_Node_Ptr node;
	uint8_t temp = 0;
	
	init_hash_table();
	
	//插入数据id = 1,data = 2;
	node = init_link_node();
	node->id = 1;
	node->data = 2;
	append_link_node(node);
	
	//插入数据id = 100,data = 101
	node = init_link_node();
	node->id = 100;
	node->data = 101;
	append_link_node(node);
	
	//id = 1000,data = 1001
	node = init_link_node();
	node->id = 1000;
	node->data = 1001;
	append_link_node(node);
	
	//id = 10000,data = 10001
	node = init_link_node();
	node->id = 10000;
	node->data = 10001;
	append_link_node(node);
	
	//查询id = 1000;
	node = search_link_node(1000,&temp);
	if (node != 0)
	{
		if (temp == 0)
		{
			printf("所需查询id的值为%d\n",node->next->data);
			
			//删除
			delete_link_node(node);
		}
		else
		{
			//根节点
			printf("所需查询id的值为%d\n",node->data);
			
			//删除
			delete_link_root_node(node);
		}
	}
	else
	{
		printf("查询失败\n");
	}
	
	//查询id = 1000;
	node = search_link_node(1001,&temp);
	if (node != 0)
	{
		if (temp == 0)
		{
			printf("所需查询id的值为%d\n",node->next->data);
		}
		else
		{
			//根节点
			printf("所需查询id的值为%d\n",node->data);
		}
	}
	else
	{
		printf("查询失败\n");
	}
	
	getchar();
	return 0;
}





    
[3] JQuery MObile入门——增添尾部栏按钮
    来源: 互联网  发布时间: 2014-02-18
JQuery MObile入门——添加尾部栏按钮

1、尾部栏与头部栏结构差不多,区别是设置的data-role属性值不同,为了减少各按钮间的距离,通常需要在按钮的外围添加一个data-role属性值为controlgroup的容器,形成一个按钮组显示在尾部栏中。同时,在该容器中添加一个data-type属性,并将属性值设置为horizontal,表示按钮按水平顺序排列。

2、示例代码:

<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <meta name="viewport" content="width=device-width,initial-scale=1"/>
  <link href="/blog_article/Css/jquery.mobile-1.2.0.min.css" rel="Stylesheet" type="text/css"/>
  <script src="/blog_article/Js/jquery-1.8.3.min.js" type"text/javascript"></script>
  <script src="/blog_article/Js/jquery.mobile-1.2.0.min.js" type="text/javascript"></script>
 </HEAD>
 <BODY>
  <div data-role="page">
    <div data-role="header"><h1>头部栏</h1></div>
<div data-role="content">
 <p>添加尾部栏按钮</p>
</div>
<div data-role="footer">
<div data-role="controlgroup" data-type="horizontal">
 <a href="#" data-role="button" data-icon="home">关于公司</a>
 <a href="#" data-role="button" data-icon="forward">联系我们</a>
</div>
</div>
  </div>
 </BODY>
</HTML>


3、效果图预览:



    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3