Android中Message傳遞參數【安卓進化十六】

來源:互聯網
上載者:User

 

最近發現Message,發送訊息可以傳遞參數,這個思路很好,所以寫了一個例子,點擊螢幕,給Activity發送一個訊息,傳遞兩個參數,並把這個activity銷毀掉!

轉載請標明出處:http://blog.csdn.net/wdaming1986/article/details/6748688 

 

程式開啟介面:                                                 點擊螢幕,銷毀activity彈出Toast:

                                                

                   

 

 

看代碼:

MainActivity。java類:

 

package com.cn.android; 

 

import android.app.Activity; 

import android.os.Bundle; 

import android.os.Handler; 

import android.os.Message; 

import android.widget.Toast; 

 

public class MainActivity extends Activity { 

 

    final static int CANSHU = 1; 

     

    public Handler mHandler=new Handler(){ 

        public void handleMessage(Message msg) { 

        switch(msg.what){ 

            case CANSHU :   String str1 = msg.getData().getString("text1");//接受msg傳遞過來的參數 

                    String str2 = msg.getData().getString("text2");//接受msg傳遞過來的參數 

                    initFinishMainActivity(str1, str2); 

                              break; 

            default         : break; 

            } 

        }    

    }; 

     

    @Override 

    public void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        InitMainActivity(); 

    } 

     

    public void InitMainActivity() 

    { 

        setContentView(new MainActivityView(this,this)); 

    } 

     

    public void initFinishMainActivity(String str1, String str2) 

    { 

        Toast.makeText(MainActivity.this, str1+str2, Toast.LENGTH_LONG).show(); 

        finish(); 

    } 

 

MainActivityView。java類:

 

package com.cn.android; 

 

import android.content.Context; 

import android.graphics.Bitmap; 

import android.graphics.BitmapFactory; 

import android.graphics.Canvas; 

import android.graphics.Rect; 

import android.os.Bundle; 

import android.os.Message; 

import android.view.MotionEvent; 

import android.view.View; 

 

public class MainActivityView extends View{ 

 

    private MainActivity activity; 

    private Context context; 

    private Bitmap m_Bitmap; 

     

    public MainActivityView(Context context, MainActivity activity) { 

        super(context); 

        this.activity = activity; 

        this.context = context; 

        initBitmap(); 

    } 

      www.2cto.com

    public void initBitmap() 

    { 

        m_Bitmap = BitmapFactory.decodeResource(this.getResources(),R.drawable.bg); 

    } 

 

    @Override 

    public void onDraw(Canvas canvas) { 

        canvas.drawBitmap(m_Bitmap, 0, 0, null); 

         

    } 

 

    @Override 

    public boolean onTouchEvent(MotionEvent event) { 

        int x = (int) event.getX(); 

        int y = (int) event.getY(); 

        Rect rect; 

        rect = new Rect(0,0,320,480); 

         

        if(rect.contains(x,y)) 

        { 

            Message msg = new Message(); 

            msg.what = MainActivity.CANSHU; 

            Bundle bundle = new Bundle();   

                      bundle.putString("text1","大明的訊息傳遞參數的例子!");  //往Bundle中存放資料 

                         bundle.putString("text2","Time:2011-09-05");  //往Bundle中put資料 

                         msg.setData(bundle);//mes利用Bundle傳遞資料 

                         activity.mHandler.sendMessage(msg);//用activity中的handler發送訊息 

        } 

         

        return super.onTouchEvent(event); 

    } 

     

     

}   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.