当前位置:  编程技术>综合
本页文章导读:
    ▪Android之自定义系统菜单栏背景      关键代码为重写Layout.Factory.onCreateView()方法自定义布局,不复杂,所以不多说,简单的几段代码: public class MenuAct extends Activity { @Override public void onCreate(Bundle savedInstanceState) { .........
    ▪LA - 4329 - Ping pong      题意:一条街从西到东住着N(3 <= N <= 20000)位乒乓球选手,每位选手有一个属于自己的等级,3个人,2人比赛,1人当裁判,裁判要住在这2个人之间,且裁判的等级也要在这2人之间,问共.........
    ▪IOS开发之——UITextField限制字数      在输入东西的时候,如果想限制最大字数,可以用下面方法: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {     if ([string isEqualToString:.........

[1]Android之自定义系统菜单栏背景
    来源: 互联网  发布时间: 2013-11-05

关键代码为重写Layout.Factory.onCreateView()方法自定义布局,不复杂,所以不多说,简单的几段代码:

public class MenuAct extends Activity {   
    @Override   
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.main);   
    }   
    public boolean onCreateOptionsMenu(Menu menu) {   
        super.onCreateOptionsMenu(menu);   
        MenuInflater inflater = new MenuInflater(getApplicationContext());   
        inflater.inflate(R.menu.menu, menu);   
        setMenuBackground();   
        return true;   
    }   
    public boolean onOptionsItemSelected(MenuItem item) {   
        String info = "";   
        switch (item.getItemId()) {   
        case R.id.menu_add:   
            info = "Add";   
            break;   
        case R.id.menu_delete:   
            info = "Delete";   
            break;   
        case R.id.menu_home:   
            info = "Home";   
            break;   
        case R.id.menu_help:   
            info = "Help";   
            break;   
        default:   
            info = "NULL";   
            break;   
        }   
        Toast toast = Toast.makeText(this, info, Toast.LENGTH_SHORT);   
        toast.show();   
        return super.onOptionsItemSelected(item);   
    }   
    // 关键代码为重写Layout.Factory.onCreateView()方法自定义布局   
    protected void setMenuBackground() {   
        MenuAct.this.getLayoutInflater().setFactory(new android.view.LayoutInflater.Factory() {   
            /**  
             * name - Tag name to be inflated.<br/>  
             * context - The context the view is being created in.<br/>  
             * attrs - Inflation attributes as specified in XML file.<br/>  
             */   
            public View onCreateView(String name, Context context, AttributeSet attrs) {   
                // 指定自定义inflate的对象   
                if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) {   
                    try {   
                        LayoutInflater f = getLayoutInflater();   
                        final View view = f.createView(name, null, attrs);   
                        new Handler().post(new Runnable() {   
                            public void run() {   
                                // 设置背景图片   
                                view.setBackgroundResource(R.drawable.menu_background);   
                            }   
                        });   
                        return view;   
                    } catch (InflateException e) {   
                        e.printStackTrace();   
                    } catch (ClassNotFoundException e) {   
                        e.printStackTrace();   
                    }   
                }   
                return null;   
            }   
        });   
    }   
}   


 

/res/menu/menu.xml

<?xml version="1.0" encoding="utf-8"?>   
<menu xmlns:android="http://schemas.android.com/apk/res/android">   
    <item android:id="@+id/menu_add" android:title="Add" android:icon="@drawable/menu_add"></item>   
    <item android:id="@+id/menu_delete" android:title="Delete" android:icon="@drawable/menu_delete"></item>   
    <item android:id="@+id/menu_home" android:title="Home" android:icon="@drawable/menu_home"></item>   
    <item android:id="@+id/menu_help" android:title="Help" android:icon="@drawable/menu_help"></item>   
</menu>   


 

作者:weidi1989 发表于2013-1-5 16:52:43 原文链接
阅读:0 评论:0 查看评论

    
[2]LA - 4329 - Ping pong
    来源: 互联网  发布时间: 2013-11-05

题意:一条街从西到东住着N(3 <= N <= 20000)位乒乓球选手,每位选手有一个属于自己的等级,3个人,2人比赛,1人当裁判,裁判要住在这2个人之间,且裁判的等级也要在这2人之间,问共能举行几场比赛?

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=26&page=show_problem&problem=2330

——>>AC的感觉真是不错!艰辛!!!从2到N-1依次选i为裁判,求其左边有几人比裁判的等级低,记为c[i],再求右边有几人比裁判等级低,记为d[i],比赛场数为c[i]*(N-i-d[i]) + (i-1-c[i])*d[i],当然啦,求c[i]、d[i]时不可一个一个地循环扫,否则TLE。设等级存在数组a[]里,设等级标记存在数组x[],当扫到i当裁判时,该裁判的等级为a[i],等级比他低的等级有a[i]-1, a[i]-2, ...于是扫描等级数组x[],若x[j] == 1,说明等级为j的选手已存在,将前a[i]-1个x[]加起来,就是c[i],从后往前扫就可得d[i],此过程通过树状数组即二叉索引树BIT实现。要注意:c[i]*(N-i-d[i]) + (i-1-c[i])*d[i]可能大于2147483647,所以此处应用64位整数来存。

#include <iostream>
#include <string.h>

using namespace std;

const int maxn = 20000 + 10;        //人数3 <= N <= 20000
const int maxnn = 100000 + 10;      //等级 [1, 100000]
int a[maxn], c[maxn], d[maxn], x[maxnn], BIT[maxnn], N;     //a[i]为i的等级,c[i]为第i个人的西边等级比他低的人数,d[i]为第i个人的东边等级比他低的人数,x[i]为目前为止等级为i的人是否存在,BIT[i]为二叉索引树第i个条的长度

int lowbit(int i)       //数i的二进制表示的从右边开始第一个1对应的值
{
    return i&-i;
}
int sum(int i)      //BIT求x的前i项和
{
    int ret = 0;
    while(i > 0)
    {
        ret += BIT[i];
        i -= lowbit(i);
    }
    return ret;
}
void add(int i, int d)      //当修改x[i]的时候,对应修改二叉索引树中BIT数组
{
    while(i <= maxnn-1)      //注意:这个maxnn-1千万别写成N,需要 >= 100000 因为这是对等级来说的,不是对选手来说的!
    {
        BIT[i] += d;
        i += lowbit(i);
    }
}
int main()
{
    int T, i;
    cin>>T;
    while(T--)
    {
        memset(x, 0, sizeof(x));        //初始化x为0
        memset(BIT, 0, sizeof(BIT));        //初始化BIT为0,因为x数组为0,无论多少个0相加还是0
        cin>>N;
        for(i = 1; i <= N; i++)
            cin>>a[i];
        for(i = 1; i <= N; i++)     //从西往东求第i个人的西边有几个比他等级低的选手,即c[i]
        {
            c[i] = sum(a[i]-1);     //求和
            x[a[i]] = 1;        //标记这个等级已存在
            add(a[i], 1);      //加到BIT去
        }
        memset(x, 0, sizeof(x));        //再次初始化不可少!
        memset(BIT, 0, sizeof(BIT));        //再次初始化不可少!
        for(i = N; i >= 1; i--)     //从东往西求第i个人的东边有几个比他等级低的选手,即d[i]
        {
            d[i] = sum(a[i]-1);     //求和
            x[a[i]] = 1;        //标记这个等级已存在
            add(a[i], 1);      //加到BIT去

        }
        long long sum = 0;      //小心溢出呀!!!
        for(i = 2; i <= N-1; i++)
            sum += c[i]*(N-i-d[i]) + (i-1-c[i])*d[i];       //乘法原理与加法原理
        cout<<sum<<endl;
    }
    return 0;
}



作者:SCNU_Jiechao 发表于2013-1-5 16:51:22 原文链接
阅读:5 评论:0 查看评论

    
[3]IOS开发之——UITextField限制字数
    来源: 互联网  发布时间: 2013-11-05

在输入东西的时候,如果想限制最大字数,可以用下面方法:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

    if ([string isEqualToString:@"\n"]){

        return YES;

    }

    

    NSString * aString = [textField.text stringByReplacingCharactersInRange:range withString:string];

    if (self.searchTextField == textField)

    {

        if ([aString length] > 5) {

            textField.text = [aString substringToIndex:5];            

            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil

                                                             message:@"超过最大字数不能输入了"

                                                            delegate:nil

                                                   cancelButtonTitle:@"Ok"

                                                   otherButtonTitles:nil, nil];

            [alert show];

            [alert release];

            return NO; 

        } 

    } 

    return YES; 


}


作者:pjk1129 发表于2013-1-5 16:49:41 原文链接
阅读:0 评论:0 查看评论

    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪简单选择排序算法    ▪国外 Android资源大集合 和个人学习android收藏    ▪.NET MVC 给loading数据加 ajax 等待loading效果
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing. iis7站长之家
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


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

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

浙ICP备11055608号-3