1:代碼實現切換操作
2:配置中聲明另外一個acitivity
我們先看第一步,這裡是觸屏處理中的一段代碼:
| 代碼如下 |
複製代碼 |
public boolean onTouchEvent(MotionEvent event) { float pointx = event.getX(); float pointy = event.getY(); if (pointx > bp_x + 14 && pointx < bp_x + 14 + 117) { if (pointy > bp_y + 43 && pointy < bp_y + 43 + 15) { // 帳號 Intent i = new Intent();// 得到一個意圖的執行個體 i.putExtra("count", 1);// 寫出資料 i.putExtra("himi", str_zh); i.setClass(MainActivity.instance, Register.class);// 設定當前activity以及將要操作的類 MainActivity.instance.startActivity(i);// 用當前activity來啟動另外一個activity } } }
|
顯示定義一個intent對象,Intent這個類的機制是協助互動的,詳細的說明這裡不多講。
Intent中的putExtra()函數是起到兩個activity之間互動互動的作用,這個方法類似 hashtable 或者hashmap中的put,第一個參數是key(索引) ,後一個參數volue(值),根據key我們可以得到對應的volue了。那麼後面我也附上接受的處理。
Intent 中的setClass()函數也是傳入兩個參數,第一個是傳入當前執行個體的activity對象,後面一個參數指需要開啟的activity這個類!然後我們就可以利用當前activity對象來啟動另外一個activity了。然後我們看下在另外一個activity是如何建立並且怎麼接受資料的。
| 代碼如下 |
複製代碼 |
package com.himi; 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; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; /** * @author Himi **/ public class Register extends Activity { private Button button_ok; private EditText et; private TextView tv; private LinearLayout ly; private Register rs; private byte count; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); rs = this; ly = new LinearLayout(this); button_ok = new Button(this); button_ok.setWidth(100); button_ok.setText("確定"); button_ok.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (count == 1) { MySurfaceView.str_zh = et.getText().toString(); } else if (count == 2) { MySurfaceView.str_pass = et.getText().toString(); } rs.finish(); } }); Intent intent = this.getIntent(); count = (byte) intent.getIntExtra("count", 0); String temp_str = ""; String temp_str2 = ""; et = new EditText(this); tv = new TextView(this); if (count != 3) { temp_str = intent.getStringExtra("himi"); if (count == 1) { rs.setTitle("請輸入帳號!"); } else { rs.setTitle("請輸入密碼!"); } ly.addView(tv); ly.addView(et); ly.addView(button_ok); if (temp_str != null) { et.setText(temp_str); } } else { temp_str = intent.getStringExtra("himi_zh"); temp_str2 = intent.getStringExtra("himi_pass"); rs.setTitle("您輸入的資訊:"); tv.setText("帳號:" + temp_str + "n" + "密碼" + temp_str2); ly.addView(tv); ly.addView(button_ok); if (temp_str != null) { et.setText(temp_str); } } setContentView(ly); } } |
以上代碼可以看出,建立一個activity其實只需要繼承Activity以及重寫onCreate()方法即可。當然建立的還需要一步很重要的步驟,我會在第二步中會詳細說明,這裡我們看下是如何接受之前的activity傳來資料的。
| 代碼如下 |
複製代碼 |
Intent intent = this.getIntent(); count = (byte) intent.getIntExtra("count", 0);
|
接受也是很簡明易懂,建立一個Intent 意圖對象,調用來去getIntExtra函數得到之前傳來的資料,根據key。當然還有getStringExtra()等等函數都是類似,只是根據你傳入的資料不同選擇不同函數罷了。同學們應該注意的是getIntExtra中第二個參數是什麼意思,其實就是一個對於找不到key相匹配的時候會預設return 0;
那麼下面介紹第二步:在配置中聲明
當建立一個activity的時候我們必須在AndroidMainFeset.xml中去聲明我們建立的這個類是個Activity。