hyljava

2013年11月23日 #

解决SoapUI的Request URL不支持大写

在SoapUI的Request URL中,每次输入的URL中含有的大写字母会自动转换为小写字母,导致请求不了
这个问题在SoapUI 5.1.2和5.2.1版本中都存在,具体的解决办法是在HTTP TestRequest Properties的属性中,在Endpoint中输入对应的含有大写字母的URL即可。



posted @ 2017-03-23 10:27 何云隆 阅读(374) | 评论 (0)编辑 收藏

java发送邮件

Java使用网易邮箱服务器发送邮件实例

1 下载发送mail需要的jar

 

activation.jar  与  mail.jar

 

2 创建 SendMail  

3 代码如下

 

 

import java.util.Date;

import java.util.Properties;

import javax.mail.Address;

import javax.mail.Message;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import cn.founder.common.globals.Constants;

 

public class SendMail {

public int send(String tfrom, String tto, String ttitle, String tcontent) {

Properties props = new Properties();

props.put("mail.smtp.host", "smtp.263.net");//自己到网上查找网易发邮件的smtp服务地址 你的发件邮箱如果是163  你就查找163的发件服务器

props.put("mail.smtp.auth", "true");

Session s = Session.getInstance(props, null);

s.setDebug(true);

Message message = new MimeMessage(s);

try {

Address from = new InternetAddress(tfrom);

message.setFrom(from);

Address to = new InternetAddress(tto);

message.setRecipient(Message.RecipientType.TO, to);

sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();  

message.setSubject("=?utf-8?B?"+enc.encode(ttitle.getBytes("utf-8"))+"?=");

message.setContent(tcontent, "text/html;charset=utf-8");

message.setSentDate(new Date());

message.saveChanges();

Transport transport = s.getTransport("smtp");

//第一个参数是发件服务器   第二个是你发件的邮箱名  第三个是你发件邮箱的密码

transport.connect("smtp.263.net",发件邮箱,发件邮箱密码);

transport.sendMessage(message, message.getAllRecipients());

transport.close();

return 0;

} catch (Exception e) {

e.printStackTrace();

return 1;

}

}

/**

 * getEmailServiceIp

 * @return EmailServiceIp

 */

public static void main(String[] args) {

//第一个参数 发件邮箱   第二个收件邮箱  第三个 邮件内容

  new SendMail().send("yunlong090614@163.com", "1063342004@qq.com", "更改密码校验", "尊敬的用户你好,您的校验码为:65432</br>xxxx");

}

posted @ 2016-04-03 11:04 何云隆 阅读(150) | 评论 (0)编辑 收藏

jstl用系统时间进行判断数据时间

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<jsp:useBean id="now" class="java.util.Date" />

 <c:set var="currentday">
        <fmt:formatDate value="${now}" type="both" dateStyle="long" pattern="yyyy-MM-dd" var="nowdate"/>
        </c:set>
        ${nowdate} > ${result.openEndTimeOpen }=${nowdate > result.openEndTimeOpen}
     

posted @ 2015-10-09 09:57 何云隆 阅读(385) | 评论 (0)编辑 收藏

plsqldevelop连接到不到数据库


安装32位的Oracle客户端( instantclient-basic-win32-11.2.0.1.0)。Win7 64位系统暂无PLSQLDeveloper,所以下一个32位的。

  下载instantclient-basic-win32-11.2.0.1.0.zip (一定得是32位的,不要下错了版本,Oracle官网有下载),将其解压至Oracle安装目录的Product下(本机命名为:instantclient_11_2):D:\Oracle\app\Dell\product\instantclient_11_2

拷贝数据库安装根目录下的一个文件夹:D:\Oracle\app\Dell\product\11.2.0\dbhome_1

\NETWORK到Oracle客户端目录下D:\Oracle\app\Dell\product\instantclient_11_2(其实只需要 NETWORK\ADMIN\tnsnames.ora)



 修改oracle客户端tnsnames.ora文件(目录在D:\Oracle\app\Dell\product\instantclient_11_2\NETWORK\ADMIN\tnsnames.ora)
 MYACCP= (DESCRIPTION=       
(ADDRESS_LIST=            
(ADDRESS= (PROTOCOL=tcp)(HOST=superich-accp )(PORT=1521)) ) 
(CONNECT_DATA=(SERVICE_NAME = ACCP)         
 ) )

posted @ 2015-09-29 15:47 何云隆 阅读(138) | 评论 (0)编辑 收藏

SQL按照汉字排序

SELECT createDate,shortName,collNum,fullName FROM college
ORDER BY CONVERT( shortName USING gbk)

posted @ 2015-09-01 13:25 何云隆 阅读(393) | 评论 (0)编辑 收藏

无法启动print spooler服务,错误1068

近几日打印东西都是不成功,显示不能发现打印机,处理方法如下:
启动 print spooler服务 但是报1068错误,
在运行中输入“sc config spooler depend= rpcss”,确定后,我再去启用Print Spooler服务,居然成功了。我也不知道这是个什么命令,但是问题解决了,就要谢谢网络上的高手们!

posted @ 2015-08-30 08:10 何云隆 阅读(177) | 评论 (0)编辑 收藏

JSP中EL表达式三元(三目)运算符的使用

Java中的三元运算符为:条件?条件为true值:条件为false的值
EL也有一样的运算符,用EL的三元运算符有时可以代替c:choose标签,为我们的工作省下很大力气。

比如gender为0显示男,其余显示女,我们可以这么写:

<c:choose>
<c:when test="${gender eq 0}"></c:when>
<c:otherwise></c:otherwise>
</c:choose>

但是不是显得太麻烦了?其实我们这里就可以使用EL表达式中的三元运算符了,上面可以简化为:

${gender eq 0?"男":"女"}

这样是不是简练了很多?在JSTL和EL处理非A即B的时候,三元运算符简单了许多。

转载请注明:观测者 » JSP中EL表达式三元运算符的使用

posted @ 2015-08-25 11:03 何云隆 阅读(2715) | 评论 (0)编辑 收藏

打 war包命令

jar -cvf safety.war *
打 war包命令

posted @ 2015-08-19 10:18 何云隆 阅读(127) | 评论 (0)编辑 收藏

jquery校验输入框内容

     摘要:  引用地址http://www.cnblogs.com/xdp-gacl/p/3467245.html 用Jquery控制文本框只能输入数字和字母   在公司开发WinForm项目时,发现公司自主研发的textbox控件非常强大,可以实现"只能输入数字"、"只能输入字母"和"只能输入数字和字母"的三种输入限制,这样就可以精确控制用户输入的内容范围,让"用户永远没有办法输入...  阅读全文

posted @ 2015-05-08 11:22 何云隆 阅读(437) | 评论 (0)编辑 收藏

svn更新失败提示locked

SVN更新失败,提示locked

  • 浏览:3571
  • |
  • 更新:

 

产生这种情况大多是因为上次svn命令执行失败且被锁定了,需要删除文件夹中的lock文件,即可解锁。这里介绍3种方法:

方法一.直接进行cleanup;对较小的文件比较管用,文件稍大些等待时间很长或不起作用;

 

方法二.选择文件,右键执行release lock;等待时间较长;

 

方法三.手动删除锁定文件:

 1.在运行中输入cmd进入命令行; 2.在命令提示符下cd 到svn项目出现问题的文件所在目录下; 3.执行命令del lock /q/s 4.等待删除lock文件成功,重新更新SVN。

posted @ 2015-03-25 15:03 何云隆 阅读(278) | 评论 (0)编辑 收藏

广禾养老文化村

广禾养老文化村
首页地址http://202.199.162.210:8080/IntelligentNursing/index/toIndex
展示效果

 
 


posted @ 2014-08-26 16:18 何云隆| 编辑 收藏

打开eclipse弹出Error:could not open D:\java\lib\i386\jvm.cfg'

打开eclipse弹出Error:could not open D:\java\lib\i386\jvm.cfg'
运行中 输入regedit 
 
没有修改注册表,解决办法是: 
重新安装JDK时注册表中\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environemt\1.6 项目下的JavaHome和RuntimeLib设置没有更新,将这两个项目更正即可.
 
 

posted @ 2014-05-24 22:05 何云隆 阅读(534) | 评论 (0)编辑 收藏

安装Eclipse Html Editor

安装Eclipse Html Editor 转

分类: Java 1431人阅读 评论(0) 收藏 举报
  最近在eclipse中开发android项目,用到了jquery mobile框架,则会涉及到新建html文件,发现eclipse不自带新建html文件的插件,必须得新建一个其他形式的文件,譬如xml格式的文件,然后重命名,后缀名改成html,觉得这样老麻烦的,所以在网上发现了Eclipse HTML Editor,不过此插件似乎只支持新建html文件,不支持其格式化。网上看了其他一个html格式化的插件Eclipse Tidy,不过用了后,发现格式化后的html一点都不符合代码审读标准。也不知道是不是自己哪边没设置好,还是本来就是那样。

   现在就暂先不管Eclipse Tidy了,看看如何安装Eclipse HTML Editor。

1.下载GEF(依赖包):

http://www.eclipse.org/downloads/download.php?file=/tools/gef/downloads/drops/3.7.2/R201201171043/GEF-ALL-3.7.2.zip

然后解压,把解压得到的features和plugins两文件夹放到eclipse安装目录下plugins文件夹中

2.下载HTMLEditor

http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=EclipseHTMLEditor

只有一个tk.eclipse.plugin.htmleditor_2.1.0.jar文件

直接复制到eclipse\plugins里面

posted @ 2014-04-03 15:15 何云隆 阅读(169) | 评论 (0)编辑 收藏

mysql 解决全连接问题

     摘要: 基本资料:mysql> select version();+-----------+| version() |+-----------+| 5.0.16 |+-----------+ mysql> select * from t1;+----+------+| id | name |+----+------+| 1 | aa || 2 | bb || 3 | cc |+---...  阅读全文

posted @ 2014-03-03 19:30 何云隆 阅读(343) | 评论 (0)编辑 收藏

ListView实现RadioButton的功能有bug改进

前言:之前做的ListView实现RadioButton的功能有bug,当ListView控件的内容超出屏幕可见区域时,滑动ListView控件会报错,下面有为什么出错和解决方法进行的注解,不多说了,看源码,有更好的解决办法请指教

1,MainActivity.java

package com.excetop.listradio;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class MainActivity extends Activity {
    private static final String TAG = "MainActivity";
    private ListView listView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        listView = (ListView) this.findViewById(R.id.list);
        MyAdapter adapter = new MyAdapter();
        listView.setAdapter(adapter);
    }
    private class MyAdapter extends BaseAdapter{
        private String[] s = new String[]{"a","b","c","d","e","a","b","c","d","e","a","b","c","d","e","a","b","c","d","e"};
        private int temp = -1;

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return s.length;
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            convertView = MainActivity.this.getLayoutInflater().inflate(R.layout.item, null);  //解决办法: 每次都重新获取View
            Button button = (Button) convertView.findViewById(R.id.button);
            button.setText(s[position]);
            RadioButton radioButton = (RadioButton) convertView.findViewById(R.id.radioButton);
            radioButton.setId(position);  //把position设为radioButton的id
            radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    
                    if(isChecked){
                        //这段代码来实现单选功能
                        if(temp != -1){
                            RadioButton tempButton = (RadioButton) MainActivity.this.findViewById(temp);
                            if(tempButton != null){
                               tempButton.setChecked(false);
                            }
                            
                        }
                        
                        temp = buttonView.getId();
                        Log.i(TAG,"you are women- -   " + isChecked + "   " + temp);
                        
                    }
                }
            });
            
            //这里实现单选框选的回显,解决了单选框移出屏幕范围未选中状态
            if(temp == position){
                radioButton.setChecked(true);
            }
            return convertView;
        }
//            Holder holder;
//            if(convertView == null){    //1,当第一次加载ListView控件时  convertView为空 
//                convertView = MainActivity.this.getLayoutInflater().inflate(R.layout.item, null); //所以当ListView控件没有滑动时都会执行这条语句
//                holder = new Holder();
//                convertView.setTag(holder);
//            }else{
//                holder = (Holder) convertView.getTag();
//            }
//            
//            holder.button = (Button) convertView.findViewById(R.id.button);
//            holder.button.setText(s[position]);
//            
//            holder.radioButton = (RadioButton) convertView.findViewById(R.id.radioButton);   //
//            holder.radioButton.setId(position);  //2,因为这里对radioButton的id进行重新设置,滑动ListView时convertView不为空,上面的语句就没法得到radioButton对象,这条语句就会报空指针异常
          
//            holder.radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
//                
//                @Override
//                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//                    
//                    if(isChecked){
//                        if(temp != -1){
//                            RadioButton tempButton = (RadioButton) MainActivity.this.findViewById(temp);
//                            tempButton.setChecked(false);
//                            
//                        }
//                        
//                        temp = buttonView.getId();
//                        Log.i(TAG,"you are women- -   " + isChecked + "   " + temp);
//                        
//                    }
//                }
//            });
//            return convertView;
//        }
//        private class Holder{
//            private Button button;
//            private RadioButton radioButton;
//        }
    }
}

2,item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
  <Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="测试">
  
  </Button>
  
  <RadioButton
    android:id="@+id/radioButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />  
 
</LinearLayout>
3, main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    <ListView
       android:id="@+id/list"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       />
</LinearLayout>

posted @ 2014-02-22 22:58 何云隆 阅读(252) | 评论 (0)编辑 收藏

listview与checkbox组合使用

一,Layout

 

1,main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    <ListView
       android:id="@+id/list"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       />
</LinearLayout>

 

2,item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
  <Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="测试">
  
  </Button>
  
  <CheckBox
    android:id="@+id/checkBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />  
 
</LinearLayout>

二,Activity

 

1,MainActivity

package com.excetop.listradio;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class MainActivity extends Activity {
 private static final String TAG = "MainActivity";
    private ListView listView;
    private Map checkMap;
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        listView = (ListView) this.findViewById(R.id.list);
        
        checkMap = new HashMap<String, Object>();
        
        MyAdapter adapter = new MyAdapter();
        listView.setAdapter(adapter);
      
    }
 private class MyAdapter extends BaseAdapter{
  private String[] s = new String[]{"a","b","c","d","e","a","b","c","d","e","a","b","c","d","e","a","b","c","d","e"};

  @Override
  public int getCount() {
   // TODO Auto-generated method stub
   return s.length;
  }

  @Override
  public Object getItem(int position) {
   // TODO Auto-generated method stub
   return null;
  }

  @Override
  public long getItemId(int position) {
   // TODO Auto-generated method stub
   return 0;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   convertView = MainActivity.this.getLayoutInflater().inflate(R.layout.item, null);  //解决办法: 每次都重新获取View
   Button button = (Button) convertView.findViewById(R.id.button);
   button.setText(s[position]);
   final CheckBox checkBox =  (CheckBox) convertView.findViewById(R.id.checkBox);
   checkBox.setId(position);  //把position设为radioButton的id
   checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
     
     if(isChecked){
      
      checkMap.put(String.valueOf(checkBox.getId()), checkBox.getId());
//      Toast.makeText(MainActivity.this, String.valueOf( checkBox.getId()), 0).show();
     
     }else{
      checkMap.remove(String.valueOf(checkBox.getId()));
//      Toast.makeText(MainActivity.this, String.valueOf( checkBox.getId()), 0).show();
     }
    }
   });
   
   if(checkMap.get(String.valueOf(position)) != null){
    checkBox.setChecked(true);
//    Toast.makeText(MainActivity.this, String.valueOf(String.valueOf(position)), 0).show();
   }
   
   //这里实现单选框选的回显,解决了单选框移出屏幕范围未选中状态
   return convertView;
  }
 }
}

posted @ 2014-02-22 22:56 何云隆 阅读(214) | 评论 (0)编辑 收藏

处理多个fragment之间replace刷新问题

 处理多个fragment之间replace刷新问题[转]
 每次创建fragment对象都会重新走onCreateView方法,所以多个fragment互相替换会重新刷新界面,
 在application中创建一个View,保持onCreateVIew中创建的View
 每次走onCreateView的时候判断application中是否保持了View,如果为null,重新inflater走initView和initData方法,不为nul得到父类,移除子View,不然有父id无法再加入布局中,
 以下是代码:
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {
  
  GalaxyApplication galaxyApplication = (GalaxyApplication) getActivity().getApplication();
  View recommendView = galaxyApplication.getRecommendView();
  if(recommendView != null){
   
   ViewGroup group = (ViewGroup) recommendView.getParent();
   group.removeAllViews();
   
   return recommendView;
  }
  
  View fmRootView = inflater.inflate(R.layout.fragment_recommend, container,false);
  
  
 
  
  initView(fmRootView);
  initData();
  galaxyApplication.setRecommendView(fmRootView);
  Logger.d("fragment: ", "onCreateView");
  return fmRootView;
 } 

 如有好的方法,处理onCreateView刷新问题  欢迎留言。 

posted @ 2014-02-22 22:55 何云隆 阅读(548) | 评论 (0)编辑 收藏

android设置重复背景

创建重复的背景图片


在drawable目录下创建一个repeat_bg.xml:  src是引用图片的名称

1
2
3
4
5
6
7
8
1
<?xml version="1.0" encoding="utf-8"?>
2
3
    android:src="@drawable/bg"
4
    android:tileMode="repeat" />

然后在布局的xml文件中可以这样引用:

1
2
3
4
5
6
7
8
1
<LinearLayout android:layout_width="fill_parent"
2
    android:layout_height="fill_parent"
3
    android:background="@drawable/repeat_bg">
4
</LinearLayout>

posted @ 2014-02-16 09:59 何云隆 阅读(198) | 评论 (0)编辑 收藏

SQL Server 里面的生成SQL脚本

通常情况下,SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有insert into。
因为SQL Server并不包含这个功能,只能靠第三方的代码了。
以下存储过程可以实现:
CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int
set nocount on
set @objectId=object_id(@tablename)
if @objectId is null -- 判断对象是否存在
begin
print 'The object not exists'
return
end
set @objectname=rtrim(object_name(@objectId))
if @objectname is null or charindex(@objectname,@tablename)=0 --此判断不严密
begin
print 'object not in current database'
return
end
if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判断对象是否是table
begin
print 'The object is not table'
return
end
select @ident=status&0x80 from syscolumns where id=@objectid and status&0x80=0x80
if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' ON'
declare syscolumns_cursor cursor
for select c.name,c.xtype from syscolumns c where c.id=@objectid order by c.colid
open syscolumns_cursor
set @column=''
set @columndata=''
fetch next from syscolumns_cursor into @name,@xtype
while @@fetch_status < >-1
begin
if @@fetch_status < >-2
begin
if @xtype not in(189,34,35,99,98) --timestamp不需处理,image,text,ntext,sql_variant 暂时不处理
begin
set @column=@column+case when len(@column)=0 then'' else ','end+@name
set @columndata=@columndata+case when len(@columndata)=0 then '' else ','','','
end
+case when @xtype in(167,175) then '''''''''+'+@name+'+''''''''' --varchar,char
when @xtype in(231,239) then '''N''''''+'+@name+'+''''''''' --nvarchar,nchar
when @xtype=61 then '''''''''+convert(char(23),'+@name+',121)+''''''''' --datetime
when @xtype=58 then '''''''''+convert(char(16),'+@name+',120)+''''''''' --smalldatetime
when @xtype=36 then '''''''''+convert(char(36),'+@name+')+''''''''' --uniqueidentifier
else @name end
end
end
fetch next from syscolumns_cursor into @name,@xtype
end
close syscolumns_cursor
deallocate syscolumns_cursor
set @sql='set nocount on select ''insert '+@tablename+'('+@column+') values(''as ''--'','+@columndata+','')'' from '+@tablename
print '--'+@sql
exec(@sql)
if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' OFF'
GO
 
使用方法:
exec UspOutputData 你的表名
选择【执行模式】为“以文本显示结果”,然后将运行后的结果存成.sql,加上用SQL Server生成的数据库脚本就可以了。
另外可以利用第三方工具,导出数据可以用powerbuilder。在database painter里面,用SQL选出,或者直接打开表,点击生成的list datawindow,然后在菜单file->save rows as->选择SQL,那么生成的SQL语句就包括建表和insert数据的SQL了。

转载:http://blog.sina.com.cn/s/blog_49b531af0100i74v.html

posted @ 2014-01-09 13:34 何云隆 阅读(134) | 评论 (0)编辑 收藏

CompoundButton

Android 中文 API (29) —— CompoundButton


前言

  本章内容是android.widget.CompoundButton,翻译来自德罗德,再次感谢德罗德 !期待你一起参与Android API 的中文翻译,联系我over140@gmail.com。 

 

  转载

 

 正文

  一、结构

    public abstract class CompoundButton extends Button implements Checkable

 

    java.lang.Object
      android.view.View
        android.widget.TextView
          android.widget.Button
            android.widget.CompoundButton

 

  二、概述

    一个带有选中/未选中状态的按钮。当按钮按下或点中时自动改变状态。

 

  三、公共方法

         public boolean dispatchPopulateAccessibilityEvent (AccessibilityEvent event)

         在子视图的构建时分派一个辅助事件。(译者注:通过源码可以看出,视图构建时设置其选中状态。)

                   参数

                            event       事件

                   返回值

                            如果事件全部完成返回True

 

         public boolean isChecked ()

         (译者注:是否选中)

 

         public void onRestoreInstanceState (Parcelable state)

         允许视图重新应用以前通过onSaveInstanceState()生成代表内部的状态。这个函数决不调用一个空的状态。

                   参数

                            state       返回以前调用onSaveInstanceState()保存下来的状态。

 

         public Parcelable onSaveInstanceState ()

         允许视图生成一个代表内部的状态,以后可用于创建一个与之相同的新的实例。这种状态应该只包含非持久或以后不能够重建的信息。例如,你决不存储你当前在屏幕上的位置,因为这会在视图的层面上重新计算放置一个新的实例。

         你可以存储到这里的一些例子:一个文本框中当前光标的位置(但通常不是文字本身,文字通常保存在内容提供者(content provider)或其他持久的储存中),一个列表视图中的当前选中项。

                   返回值

                            返回一个包含视图当前状态的Parcelable对象,或没有什么状态保存时返回null。默认实现返回null

 

         public boolean performClick ()

         如果视图定义了OnClickListener监听器,调用此方法来执行。

                   返回值

                            定义了的OnClickListener被调用返回True,否则返回False

 

         public void setButtonDrawable (Drawable d)

         给按钮背景设置一个可绘制对象(如:图像)

                   参数

                            d      用作背景的可绘制对象(如:图像)

 

         public void setButtonDrawable (int resid)

         通过资源Id给按钮背景设置一个图像

                   参数

                            resid        作为背景图像的资源id

 

         public void setChecked (boolean checked)

         改变按钮的选中状态

                  参数

                            checked true选中,false非选中

 

         public void setOnCheckedChangeListener (CompoundButton.OnCheckedChangeListener listener)

         注册一个在按钮状态发生改变时执行的回调函数

                   参数

                            listener  当选中状态改变时调用的函数

 

         public void toggle ()

         改变选中状态为当前状态的逆状态

 

  四、受保护方法

         protected void drawableStateChanged ()

         在视图状态的变化影响到所显示可绘制的状态时调用这个方法。

确保在重载时中调用父类方法

 

         protected int[] onCreateDrawableState (int extraSpace)

         为当前视图生成新的可绘图区状态。这个方式当缓存的图像绘图区状态确定失效时通过视图系统调用。你可以使用getDrawableState()方法重新取得当前的状态。

                   参数

                            extraSpace      如果为非零,这是你应该返回的数组在你可以存放你的状态的额外条目的数量。

                   返回值

                            返回一个记录着视图中当前绘图区状态的数组

 

         protected void onDraw (Canvas canvas)

         实现你自己的绘制。

                   参数

                            canvas    在画布上绘制背景

 

         protected boolean verifyDrawable (Drawable who)

         如果你的视图子类显示他自己的可视化对象,他将要重写此方法并且为了显示可绘制返回true。此操作允许进行绘制时有动画效果。

  确认当重写从方法时,需调用父类相应方法。

                   参数

                            who         需判断的可绘制对象(Drawable)。如果是你要显示的对象,返回True,否则返回调用父类的结果。

                   返回值

                            boolean 如果可绘制对象(Drawable)已经在视图中显示,返回True否则返回false。并且此处不允许使用动画。 

posted @ 2013-12-20 22:43 何云隆 阅读(176) | 评论 (0)编辑 收藏

eclipse集成maven

1.eclipse集成maven
http://eclipse.org/m2e/download/
maven在线更新地址与下载插件地址
2.下载maven 并且在机器上配置环境变量到bin目录下;
3.

posted @ 2013-12-19 19:55 何云隆 阅读(141) | 评论 (0)编辑 收藏

周鸿祎-----把自己当成打工的,一辈子都是打工的

别人觉得你是不是在打工,这个不重要。重要的是你自己千万别把自己当成打工的,换个角度去看,是公司给你发工资,替你交学费,练着你自己的能力和经验。你遇到产品经理、技术高手,或者公司创始人,从他们身上学到成功的经验,甚至是失败的教训。

 

我觉得有的人对创业的理解有误区。他们把创业理解成几个哥们开一个公司,回去印几盒名片,我叫董事局主-席,你叫首席执行官,自己的同学脖子上都挂上个CXO,名字很洋气,也不知道什么意思。如果把这个理解为创业就大错特错。

我希望大家这样来理解创业,把创业看成是一种心态,为了实现一个目标,孜孜不倦的去追求。只要你不满足于现状,想法设法去突破,那就是创业。如果你是一个在校学生,是搞电脑,如果你不满足于只是把学分学好,不满足于把考试应付好,而是花了很多时间提高你的编程能力,下了很大功夫来研究很多软件,那这也是创业。学习是这样,工作也是这样,只要你勇敢的正视问题,积极的去解决问题,敢于去承担未来的风险,这其实就是创业心态。

如果我们把创业都理解成我今天出去成立一个公司,明天上市,后天市值超越Facebook,对不起,从来没有过这样成功的例子。天底下哪里有这么一帆风顺的事?把你放在一马平川的大平原上,你凭着直觉沿着直线走,其实从高空看下去,你走出来的路是弯的,是曲折的。创业也是一样,虽然心里有个目标,但是要达到那个目标,你得解决一个个实际的问题。人的路都是一步一步走出来的,而且这个路一定不是直线。

在中国更是这样,环境确实太复杂了。特别是在创业早期,你没有经验,没有资源,你头脑里的创新可能仅仅就是一个想法,一个主意,但如果实现不了,那它就什么都不是。但是,要实现这个想法,这个主意,你需要有判断力,需要有经验,需要有知识。所以,我一直提倡大学生刚毕业的时候,不要头脑一热就攒出一个公司来,最好的方法是加入一家创业公司,甚至可以加入风险很大的种子公司,去学习创业,感受创业。

很多人说,我加入别人的公司,那我不就成了一个打工的了吗?给别人打工,谁认真干呀。错了,如果你觉得自己是打工的,那你一辈子都是打工的。别人觉得你是不是在打工,这个不重要。重要的是你自己千万别把自己当成打工的,换个角度去看,是公司给你发工资,替你交学费,练着你自己的能力和经验。你遇到产品经理、技术高手,或者公司创始人,从他们身上学到成功的经验,甚至是失败的教训。

如果你加入这个公司,这个公司两年之后死了,恭喜你,你一分钱没损失,你参与一个活生生的公司从生到死的例子,你以后就可以避免重蹈覆辙。你一分钱没花,你让一个公司死了一回,你学到了如何避免失败的教训,这是一个多么值的事。这比你拿多少工资,比你到一个有名的大公司,有用多了。

别人一见你,都说你在北京某大公司工作,太了不起。那都是虚荣心,一点意义没有。所以我一直强调,如果你怀着创业的心态,那么你在什么状态都可以叫创业。等到有一天,当你有一股强烈的冲动要办公司去创业的时候,有可能你会发现,人各有所长,你不一定是做CEO的料,但你可能是优秀的CTO,你可能是很好的销售主管,这个时候你就知道找什么样的合伙人去创业了。

所以,我鼓励大家创业,其实是鼓励大家培养创业的精神,我不主张各位一定要出去成立一个公司,那只是一个形式。美国硅谷很多人不是先装模作样地成立一个公司,而是在家里的车库,利用业余时间先搞出来一个产品,这也是创业的一部分。

我不希望传授什么成功学,我最希望大家能够想清楚未来几年自己心里想要什么。在你创业的时候,不论遇到诱惑还是遇到挑战,都能够记住我说的那句话:拒绝平庸,与众不同。你不一定要追随当时的主流,也要能耐得住寂寞,甚至要有一种韧性,敢于屡败屡战,在未来长达五年或者八年、十年的时间里一直坚韧不拔地去探索,我相信五年以后、十年以后,可能中国新一代的企业家,中国新一代的创新领袖应该从各位里面诞生。

posted @ 2013-12-18 22:24 何云隆 阅读(155) | 评论 (0)编辑 收藏

android library projects cannot be launched

android library projects cannot be launched

 
properties 在android选项中将 is library中将前面的勾去了

posted @ 2013-12-14 23:04 何云隆 阅读(140) | 评论 (0)编辑 收藏

向ListView中添加数据

BaseAdapter方式
activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android1="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView
        android1:id="@+id/listView1"
        android1:layout_width="match_parent"
        android1:layout_height="wrap_content"
        android1:layout_weight="1" >
    </ListView>

</LinearLayout>

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:gravity="center_vertical"
    android:id="@+id/waibubuju"
    >
   
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bianhao"
        android:text="编号"
        android:textColor="#88ff0000"
        android:gravity="center"
         android:textSize="18sp"
        />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/neibubuju"
        >
        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="姓名"  
       android:id="@+id/username"
           
            />
 MainActivity.java

package com.hyl.listViewpack;

import java.util.ArrayList;

import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;

public class MainActivity extends Activity {
 protected static final String TAG = "MainActivity";
 private ListView listView1;
 ArrayList<ArrayList<String>> arr ;
 
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  listView1=(ListView) findViewById(R.id.listView1);
  arr=new ArrayList<ArrayList<String>>();
  for(int i=0;i<=50;i++){
   ArrayList<String> a=new ArrayList<String>();
   a.add("编号:"+i);
   a.add("姓名:"+i);
   a.add("电话:"+i);
   arr.add(a);
   
   
  }
  
  listView1.setAdapter(new  BaseAdapter() {
   
   
   public View getView(int position, View convertView, ViewGroup parent) {
    //父窗体 挂载 
    
    
    View view=View.inflate(MainActivity.this, R.layout.list_item, null);
 
    
    Log.e(TAG, "测试创建对象位置:"+position);
    
    
    ArrayList<String> a=arr.get(position);
    
    TextView tvbianhao=(TextView) view.findViewById(R.id.bianhao);
    tvbianhao.setText( a.get(0));
    
    TextView tvUserName=(TextView) view.findViewById(R.id.username);
    tvUserName.setText( a.get(1));
    
    TextView tvTel=(TextView) view.findViewById(R.id.tel);
    tvTel.setText( a.get(2));
    
    
    
    return view;
   }
   
   @Override
   public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
   }
   
   @Override
   public Object getItem(int position) {
    // TODO Auto-generated method stub
    return null;
   }
   
   @Override
   public int getCount() {
    
    return arr.size();
   }
  });
  
  
  
  
  
  
 }

 @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;
 }

}


        
        <TextView
            android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="电话"
        android:id="@+id/tel"
           
            />
    </LinearLayout>
   

</LinearLayout>

 

ArrayAdapter方式
                                                                 //上下文对象    布局列表对象      显示的TextView的ID   数组对象
  listView1.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.bianhao, new String[]{"选项一","选项二","选项三","选项四","选项五"}));


SimpleAdapter方式

 listView1=(ListView) findViewById(R.id.listView1);
  
  ArrayList<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
  
  Map<String, Object> map1=new HashMap<String, Object>();
  map1.put("icon", R.drawable.ic1);
  map1.put("name", "功能一");
  list.add(map1);
  
  Map<String, Object> map2=new HashMap<String, Object>();
  map2.put("icon", R.drawable.ic2);
  map2.put("name", "功能二");
  list.add(map2);
  
  
  Map<String, Object> map3=new HashMap<String, Object>();
  map3.put("icon", R.drawable.ic3);
  map3.put("name", "功能三");
  list.add(map3);
  
  Map<String, Object> map4=new HashMap<String, Object>();
  map4.put("icon", R.drawable.ic1);
  map4.put("name", "功能四");
  list.add(map4);
  
  Map<String, Object> map5=new HashMap<String, Object>();
  map4.put("icon", R.drawable.ic5);
  map4.put("name", "功能五");
  list.add(map5);
  
  
  listView1.setAdapter(new SimpleAdapter(this, list, R.layout.list_item, new String[]{"icon","name"},new int[]{R.id.tubiao,R.id.gongneng} ));
  
  

  

posted @ 2013-12-10 21:00 何云隆 阅读(373) | 评论 (0)编辑 收藏

利用AsyncHttpClient与服务器端传输数据

创建一个显示的界面xml
 <ListView
        android:id="@+id/lv_show_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="16dp" >
    </ListView>

再创建一个item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
   
 <TextView
     android:layout_width="250dip"
     android:layout_height="wrap_content"
     android:id="@+id/title"
    
    
     />
 <TextView
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:id="@+id/timelength"
    
    
     />
</LinearLayout>


导入AsyncHttpClient需要的类

之后


  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_show_list_activy);
  lv_show_view = (ListView) findViewById(R.id.lv_show_view);


   AsyncHttpClient client=new  AsyncHttpClient();
  
   String  url = "http://192.168.1.100:8080/videogetxml/GetParamServlet?userName="
     + "测试方法";
   client.get(url, new AsyncHttpResponseHandler() {
   
  
   public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
     List<Video> list=new ArrayList<Video>();
    try {
     Toast.makeText(ShowListActivy.this,statusCode+"", 1).show();
     
     String json = new String(responseBody);
      JSONArray array = new JSONArray(json);
     for(int i=0 ; i < array.length() ; i++){
      JSONObject item= array.getJSONObject(i);
     
      String id = item.getString("id");
      String title = item.getString("title");
      String timelength = item.getString("time");
      Log.e("jsonget", id+title+timelength);
      list.add(new Video( id, title, Integer.parseInt(timelength)));
     }
     List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
     for (Video v : list) {
      Map<String, Object> it = new HashMap<String, Object>();
      it.put("id", v.getId());
      it.put("title", v.getTitle());
      it.put("timelength", v.getTime());
      data.add(it);
     }
     SimpleAdapter adapter = new SimpleAdapter(ShowListActivy.this, data,R.layout.item, new String[] { "title", "timelength" },new int[] { R.id.title, R.id.timelength });
     lv_show_view.setAdapter(adapter);

     
     
     
    } catch ( Exception e) {
      Log.e("MainActivity", e.toString());
     
    }     
    
    
   }
   
  
   public void onFailure(int statusCode, Header[] headers,
     byte[] responseBody, Throwable error) {
    Toast.makeText(ShowListActivy.this,"shibai", 1).show();
    
   }
  });
  显示出传过来的json结果:
 
  
 

本文章只是自己学习笔记,大家要慎重借鉴





posted @ 2013-12-03 14:30 何云隆 阅读(311) | 评论 (0)编辑 收藏

文件下载到本地

package com.shxt.controller;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownLoadServlet extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  this.doPost(request, response);
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("application/x-msdownload");
  PrintWriter out = response.getWriter();
  response.reset();// 可以加也可以不加
  response.setContentType("application/x-download");
  String filedownload = request.getRealPath("/images")
    + "\\02_开发第一个无状态会话bean.avi";// "想办法找到要提供下载的文件的物理路径+文件名";
  System.out.print(filedownload);
  String filedisplay = "okokok.avi";// "给用户提供的下载文件名";
  filedisplay = URLEncoder.encode(filedisplay, "UTF-8");
  response.addHeader("Content-Disposition", "attachment;filename="
    + filedisplay);
  

  OutputStream outp = null;
  FileInputStream in = null;
  try {
   outp = response.getOutputStream();
   // 你可以指定你的ftp输入流
   in = new FileInputStream(new File(filedownload));

   byte[] b = new byte[1024];
   int i = 0;

   while ((i = in.read(b)) > 0) {
    outp.write(b, 0, i);
   }
   outp.flush();
  } catch (Exception e) {
   System.out.println("Error!");
   e.printStackTrace();
  } finally {
   if (in != null) {
    in.close();
    in = null;
   }
   if (outp != null) {
    outp.close();
    outp = null;
   }
   //out.clear();
   //out = pageContext.pushBody();
  }
 }

}

posted @ 2013-11-23 20:51 何云隆 阅读(919) | 评论 (1)编辑 收藏