標籤:android style class blog code java
首先來看一個Activity當中啟動另一個Activity,直接上代碼說吧:
(1)首先要多個Activity,那麼首先在res-layout下建立一個 Other.xml,用來充當第二個Activity的布局檔案
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/MyTest" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>
(2)加入一個 src 下加入一個類檔案(java裡是這麼說的嗎,我一直在搞c++,不太清楚java裡面的屬於怎麼說)
記住類一定要 繼承Activity ( public class *** extends Activity ),然後重寫 onCreate 方法
package com.example.cart;import android.R.string;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;public class OtherActivity extends Activity{ private TextView mytext = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.othery); mytext = (TextView)findViewById(R.id.MyTest); mytext.setText("hello activity"); }}
這個Activity呢,其實很簡單就是只有一個TextView,內容就是“hello activity”
(3)接下來我們需要在 AndroidManifest.xml 當中註冊這個Activity
(4)我們需要在主的activity當中去調用,具體的做法是 首先在主Activity的布局是只有一個按鈕,然後我們監聽這個按鈕按下事件,
按下這個按鈕就會通過Intent來調用另一個Activity,也就是我們上面建立的Activity,下面是代碼:
package com.example.cart;import android.app.Activity;import android.app.ActionBar;import android.app.Fragment;import android.content.DialogInterface;import android.content.Intent;import android.view.View.OnClickListener;import android.net.Uri;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.TextView;import android.os.Build;public class MainActivity extends Activity { public Button mybutton = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mybutton = (Button)findViewById(R.id.MyButton); mybutton.setText("nihao-ha2ha"); mybutton.setOnClickListener(new MyButtonListen()); } class MyButtonListen implements OnClickListener { @Override /* 如果遇到 aetOnclickListener報錯的時候,按照下面來做:
1.把 onClick(DialogInterface arg0, int arg1) 改成 onClick(View v)
2.把 import android.content.DialogInterface.OnClickListener; 改成 import android.view.View.OnClickListener; */
public void onClick(View v) { Intent intent = new Intent(); intent.setClass(MainActivity.this, OtherActivity.class); MainActivity.this.startActivity(intent); } }}
(5) 運行程式之後,首先進入第一個Activity,點擊了按鈕了之後調轉到了第二個Activity
接下來嘗試一個Activity當中啟動另一個Activity的時候,傳遞資料給另一個Activity:
Intent包含:ComponentName、Action、Data、Extras、Category、Flags,我們就將使用Extra來進行資料的傳遞
(1)主Activity當中這樣調用
Intent intent = new Intent(); intent.putExtra("testintent", "ccyy"); intent.setClass(MainActivity.this, OtherActivity.class); MainActivity.this.startActivity(intent);
(2)接受端是這樣的
protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.othery); Intent intent = getIntent(); String myvalue = intent.getStringExtra("testintent"); mytext = (TextView)findViewById(R.id.MyTest); mytext.setText("hello activity" + myvalue); }
當然,Intent進行資料傳遞的時候,不僅可以在同一個應用程式的不用Activity直接進行傳遞,而且可以進行不同應用程式的調用和資料傳遞:
下面通過Uri調用發簡訊的介面來進行說明,代碼還是加到剛才的按鈕相應中:
Uri uri = Uri.parse("smsto:13008574656"); Intent intent = new Intent(Intent.ACTION_SENDTO, uri); intent.putExtra("sms_body", "hi,I am a student~"); MainActivity.this.startActivity(intent);
運行之後,點擊按鈕進入到發簡訊的介面:
這次學習主要理解了:
1.多個Activity
2.Intent的基本作用
3.一個Activity當中啟動另一個Activity
4.使用Intent在Activity之間傳遞資料