YII::app()->baseUrl – 当前网页的baseUrl
$this->createUrl(‘site/login’) – 以网站根目录为基础,创建新的连接url
$this->redirect(array(‘site/index’)) – 直接跳转到layout界面
Yii::app()->basePath – 网站在服务器上的文件夹路径
五
19
CAPTCHA图片不显示的问题仿佛很普遍,首先确保你的GD插件已经启用,是否启用看phpinfo就知道了。如果GD已经启用,而直接打开CAPTCHA图片时提示“图像XXX因其本身有错无法显示” ,可以尝试通过以下几种方法来解决 :
1 尽量删除文中的空格
2 在php文件顶部加入error_reporting(0);
3 在header输出前加入ob_clean(); 也就是:
ob_clean();//加上这行
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Transfer-Encoding: binary');
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
五
02
Java的IO操作真是复杂,要经过以下几个步骤:
URL->HttpURLConnection->InputStream->InputStreamReader->BufferReader.readLine()
请看通用的类HttpDownloader:
package cc.ewings.download;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpDownloader {
private URL url=null;
//本函数近适用于文本类文件的下载
public String download(String urlStr){
StringBuffer sb=new StringBuffer();
String line=null;
BufferedReader buffer = null;
try{
//URL->HttpURLConnection->InputStream->InputStreamReader->BufferReader.readLine()
url=new URL(urlStr);
HttpURLConnection urlConn=(HttpURLConnection) url.openConnection();
buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
while((line=buffer.readLine()) != null){
sb.append(line);
}
} catch (Exception e){
e.printStackTrace();
} finally {
try{
buffer.close();
} catch(Exception e){
e.printStackTrace();
}
}
return sb.toString();
}
}
五
01
一 广播机制
1 创建一个继承自BroadReceiver的类MyReceiver:
package cc.ewings.BroadcastTest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
System.out.println("received");
}
}
2 在主类中广播intent
package cc.ewings.BroadcastTest;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class BroadCastActivity extends Activity {
Button myBtn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myBtn=(Button) this.findViewById(R.id.myBtn);
myBtn.setOnClickListener(new MyListener());
}
class MyListener implements OnClickListener{
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent myIntent=new Intent();
myIntent.setAction(Intent.ACTION_EDIT);
BroadCastActivity.this.sendBroadcast(myIntent);
}
}
}
3 在Manifest中注册receiver
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.EDIT"/>
</intent-filter>
</receiver>
注: 在主Activity中也可以直接注册侦听,这样就不用再Manifest注册了:
package cc.ewings.BroadcastTest;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class BroadCastCodeDefine extends Activity {
Button myBtn;
MyReceiver receiver;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myBtn=(Button) this.findViewById(R.id.myBtn);
myBtn.setOnClickListener(new MyListener());
receiver=new MyReceiver();
registerReceiver(receiver, new IntentFilter("cc.ewings.foodstar.refreshPage"));
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(receiver);
}
class MyListener implements OnClickListener{
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("broadcasting");
Intent myIntent=new Intent();
myIntent.setAction("cc.ewings.foodstar.refreshPage");
BroadCastCodeDefine.this.sendBroadcast(myIntent);
}
}
}
这样的好处是,可以关闭侦听。用Manifest中注册的,则关闭程序后仍然能收到侦听。
四
30
一 用adb工具查看数据库,依次使用以下命令:
cmd->adb shell
cd data/data/包名/databases
ls
sqllite3 数据库名
select * form 表名; Continue reading “Android: SQLite教程”
Adsense place!
From The Past
- 四30Android:线程简单总结
伪线程(其实还是用的主线程) 1 Handler myHandler=new... - 四29Android:RelativeLayout关键词
Attribute Name Related Method Description android:layout_abov... - 四29Android:tablelayout简介
linear layout可以实现简单快速的横向布局,但复杂... - 四28截获页面关闭的JS事件
一看就明白: window.onbeforeunload=function (){alert(“关... - 四12解决:Android创建keystore时出现java.io.filenotfoundexception错误
android开发接近尾声时需要打包apk,如果想sign,那... - 四12yiinfinite-scroll:YII 列表自动加载插件
yiinfinite-scroll这个插件很不错,推荐使用。具体介... - 四11Android义标题拦美化
1 自定义标题拦 http://www.pocketdigi.com/20110623/343.html ... - 三27YII集成xhEditor
xhEditor简洁大方,是很不错的WYSIWYG。但集成到YII时... - 三26YII 下拉列表
1 静态下拉列表 如果下拉别表中数据是静态的(比... - 三26YII 图片上传
图片上传涉及到的操作比较多,尤其需要注意第1... - 三21Android修改包路径(change package name)
在借鉴别人实例文件时,经常需要修改包名。这里... - 三16bom导致的网站错误及其解决
什么是BOM? BOM 是 Byte Order Mark 的缩写。是UTF编码... - 三11如何新建MySQL数据库,并新建/删除用户
用root账号登陆数据库: mysql -u root -p; password: password... - 三11CENTOS下找回MySQL的root密码教程
忘记了root密码?别急,照以下步骤操作可以转运... - 三09如何配制centos时间
1 如果用date -R看到系统时间不对,请搜索相关文章... - 三06vsftpd中创建、编辑、删除用户
centos的命令用起来感觉不错,找到了当年dos的感觉... - 二04以阴谋论的眼光来看《鸿门宴》
《鸿门宴》的改编比较大胆,有新意。历史的真相... - 一26FlashBuilder 4.6安装手记
有几个月没有摸FB了,换笔记本后,也没有安装。... - 一26YII:如何在CActiveDataProvider中调用关联表并在view中显示其数据
YII的CListView使用起来很方便,并且它的dataprovider也... - 一18MySQL中使用JOIN和零时变量一例
SELECT @id:=ho.hotel_id,hl.hotel_email FROM order_info oi JOIN ho...


