当前位置:  编程技术其它 iis7站长之家
本页文章导读:
    ▪递归算法-求解多元一次方程        递归算法---求解多元一次方程   /** * 求解x1+x2+x3+...+x10 = 10 的非负整数解 */ #include<stdio.h> static int ans_sum ; int n=10; int numx=10; int ans[10]; void print_ans() { int i; for (i = numx - 1; i >= .........
    ▪ Handler应用(二)        Handler使用(二) Handler为Android提供了一种异步消息处理机制,当向消息队列中发送消息(sendMessage)后就立即返回,而从消息队列中读取消息时会阻塞,其中从消息队列中读取消息时会执行H.........
    ▪ 设置TextView部分文字的色彩和背景(高亮显示)       设置TextView部分文字的颜色和背景(高亮显示) 参考了zhangkun716717-126-com的博客例子, 然后拿来修改了, 这个例子在我的开发中用到了,首先感谢“亚当爱上java”的无私分享让我得到了结果.........

[1]递归算法-求解多元一次方程
    来源: 互联网  发布时间: 2014-02-18
递归算法---求解多元一次方程

 

/**
 * 求解x1+x2+x3+...+x10 = 10 的非负整数解
 */
#include<stdio.h>
static int ans_sum ;
int n=10;
int numx=10;
int ans[10];
void print_ans()
{
        int i;
        for (i = numx - 1; i >= 0; i--) {
                printf("%d ", ans[i]);
        }
        printf("\n");
}

void solve(int n, int numx)
{

        int i;
        if (n < 0)
                return;
        if (numx == 1) {
                ans_sum++;
                ans[numx - 1] = n;
                print_ans();
                return;
        }
        for (i = 0; i <= n; i++) {
                ans[numx - 1] = i;
                solve(n - i, numx - 1);
        }
}
int main(int argc, char *argv[])
{
        solve(n,numx);
        printf("total :%d\n", ans_sum);
        return 0;
}

    
[2] Handler应用(二)
    来源: 互联网  发布时间: 2014-02-18
Handler使用(二)

Handler为Android提供了一种异步消息处理机制,当向消息队列中发送消息(sendMessage)后就立即返回,而从消息队列中读取消息时会阻塞,其中从消息队列中读取消息时会执行Handler中的handleMessage方法,因此在创建Handler对象时,应使用匿名内部类重写该方法,在该方法中写上读取到消息后的操作,使用Handler的obtainMessage()方法来获得消息对象。


Handler与线程的关系:

 

使用Handler对象中的post方法可以将Runnable对象添加到Handler的线程队列中,该Runnanble的执行其实并未单独开启线程,而是仍然在当前Activity线程中执行的。Handler对象中是调用了Runnanble对象的run方法。

 

如何让Handler执行Runnanble时打开新的线程?????

1.       首先生成一个HandlerThread对象,实现了使用Looper来处理消息队列的功能,这个类由Android应用程序框架提供。HandlerThread XXX=new HandlerThread(“handler_thread”);

2.       在使用HandlerThread的getLooper()方法之前,必须先调用该类的start()方法。

3.       根据这个HandlerThread对象得到其中的Looper对象。

4.       创建自定义的继承于Hanlder类的子类,其中实现一个参数为Looper对象的构造函数方法,方法内容调用父类的构造函数即可。

5.       使用第三步得到的Looper对象创建自定义的Handler子类的对象,再将消息发送到该Handler的消息队列中,Handler复写的handleMessage()将会执行来处理消息队列中的消息,即Message对象,可以使用arg1,arg2,Object传递一些整型或对象,还可用Message对象的setData()来将Bundle对象传递给新创建的线程,新创建的线程在执行handleMessage()时可从message中利用getData()提取出Bundle对象来进行处理。

 

Java示例代码:

//自定义继承于Hanlder的子类,

    class MyHandler extends Handler

    {

    //实现一个参数 为Looper对象的构造函数的方法,内容只需调用父类的构造函数即可。

    public MyHandler(Looper looper)

    {

         super(looper);

    }

       /* (non-Javadoc)

        * 复写handleMessage方法来处理消息,即Message对象;

        */

       @Override

       public void handleMessage(Message msg) {

           // TODO Auto-generated method stub        

           Bundle bundle=msg.getData(); 

           System.out.println("username:"+bundle.getString("name")+" password:"+bundle.getString("password"));

           System.out.println("Handler---------->"+

Thread.currentThread().getId());

           super.handleMessage(msg);

       }

    }

   

    public void beginSendMessageClick(View view) {

 

    //生成一个HandlerThread对象;

     HandlerThread handlerThread=new HandlerThread("handler_thread"); 

     //调用getLooper方法前必须调用此方法;

     handlerThread.start();

     //得到Looper对象;

     Looper looper=handlerThread.getLooper();

     //创建自定义的Handler子类的对象

     MyHandler myHandler=new MyHandler(looper);

     

//直接从Handler对象中获取message;另外 一种写法是直接调用Handler对象中的sendMessage方法,

     Message msg=myHandler.obtainMessage();

      Bundle bundle=new Bundle();

      bundle.putString("name", "administrator");

      bundle.putString("password", "admin_password");

      msg.setData(bundle);

     //将Message发送到目标对象,该对象是生成msg对象的Handler对象-->myHandler;

      msg.sendToTarget();

    }

 

 

/*小结:

 * 1.向哪个Handler发送消息,就必须在哪个Handler里接收。

 * 2.直接使用Java的Thread是无法更新Android UI的,因为Android View在设计时,线程是不完全的,

 *   3. 直接使用Handler中的post方法是在当前主线程中做操作,而不是新建线程,建议使用Thread线程新建或用HandlerThread类亦可以;

 */


    
[3] 设置TextView部分文字的色彩和背景(高亮显示)
    来源: 互联网  发布时间: 2014-02-18
设置TextView部分文字的颜色和背景(高亮显示)
参考了zhangkun716717-126-com的博客例子, 然后拿来修改了, 这个例子在我的开发中用到了,首先感谢“亚当爱上java”的无私分享让我得到了结果,下面看我改过的代码
public class Test extends Activity {
	private String strs="我的心太乱ewrwer了,给我点空白。";  
    private TextView textview;  
    private Button btn1, btn2;
    private SpannableStringBuilder style;
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        
        loadView();  
    }  
    private void loadView(){
    	btn1 = (Button) findViewById(R.id.btn1);
    	btn2 = (Button) findViewById(R.id.btn2);
    	textview = (TextView) findViewById(R.id.tv);
    	style=new SpannableStringBuilder(strs);  
    	btn1.setText("蓝色");
    	btn2.setText("红色");
        btn1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
		        style.setSpan(new BackgroundColorSpan(Color.BLUE),0,strs.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
		        textview.setText(style);  
			}
		});
        btn2.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
		        style.setSpan(new BackgroundColorSpan(Color.RED),0,strs.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
		        textview.setText(style);  
			}
		});
    }
}


    
最新技术文章:
▪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,