android 中 Handler 的简单使用

来源:互联网 发布:淘宝买家具收手续费吗 编辑:程序博客网 时间:2024/06/06 03:50

1.Activity的代码

package com.example.XXJZ;import android.R.string;import android.annotation.SuppressLint;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;@SuppressLint("HandlerLeak") public class MainActivity extends Activity {private TextView tv_Text;private Button   bn_Button01;private Button   bn_Button02;private Context myContext;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                this.myContext = this;        this.addView();    }   /**    * 添加view     */   public void addView(){      this.tv_Text = (TextView)findViewById(R.id.tv_Text);   this.bn_Button01 = (Button)findViewById(R.id.bt_Button01);   this.bn_Button02 = (Button)findViewById(R.id.bt_Button02);      bn_Button01.setOnClickListener(new myOnClickListener());   }      /******************** myHandler 使用,其实就是子线程与主线程之间的秘书************/   Handler myHandler = new Handler(){         //回到主线程里面的方法   public void handleMessage(android.os.Message msg) {      String data =  (String)msg.obj;      tv_Text.setText(data);   Toast.makeText(myContext, data, Toast.LENGTH_LONG).show();   };   };      /*********************** myOnClickListener 点击事件 ************/   private class myOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmyThread myThread = new myThread();myThread.start();//启动线程}     }      /******************** 添加子线程 ************/   private class myThread extends Thread{    //继承run方法 @Overridepublic void run() {// TODO Auto-generated method stubsuper.run();String string = "我是子线程里面的数据";//调用myHandler Message message = new Message();message.obj = string;//子线程里面的数据message.what = 0;//标识myHandler.sendMessage(message);}      }<pre name="code" class="java">package com.example.XXJZ;import android.R.string;import android.annotation.SuppressLint;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;@SuppressLint("HandlerLeak") public class MainActivity extends Activity {private TextView tv_Text;private Button   bn_Button01;private Button   bn_Button02;private Context myContext;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                this.myContext = this;        this.addView();    }   /**    * 添加view     */   public void addView(){      this.tv_Text = (TextView)findViewById(R.id.tv_Text);   this.bn_Button01 = (Button)findViewById(R.id.bt_Button01);   this.bn_Button02 = (Button)findViewById(R.id.bt_Button02);      bn_Button01.setOnClickListener(new myOnClickListener());   }      /******************** myHandler 使用,其实就是子线程与主线程之间的秘书************/   Handler myHandler = new Handler(){         //回到主线程里面的方法   public void handleMessage(android.os.Message msg) {      String data =  (String)msg.obj;      tv_Text.setText(data);   Toast.makeText(myContext, data, Toast.LENGTH_LONG).show();   };   };      /*********************** myOnClickListener 点击事件 ************/   private class myOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmyThread myThread = new myThread();myThread.start();//启动线程}     }      /******************** 添加子线程 ************/   private class myThread extends Thread{    //继承run方法 @Overridepublic void run() {// TODO Auto-generated method stubsuper.run();String string = "我是子线程里面的数据";//调用myHandler Message message = new Message();message.obj = string;//子线程里面的数据message.what = 0;//标识myHandler.sendMessage(message);}      }}

2.xml中的代码

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

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="com.example.XXJZ.MainActivity">


    <TextView

        android:layout_marginTop="2dp"

        android:id="@+id/tv_Text"

        android:layout_width="match_parent"

       android:layout_height="wrap_content"

        android:text="@string/hello_world"/>

    

    <Button 

        android:id="@+id/bt_Button01"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_below="@id/tv_Text"

        android:layout_marginTop="100dp"

        android:text="按钮01"

        />

    

    <Button 

        android:id="@+id/bt_Button02"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_below="@id/bt_Button01"

android:layout_marginTop="200dp"

android:text="按钮02"        

        />


</RelativeLayout>



0 0
原创粉丝点击