Android(一) activity、intent知識和總結
阿新 • • 發佈:2019-01-21
導讀:
第一部分,基礎activity知識
第二部分,Intent傳遞值
第三部分,Intent傳遞類物件
Activity |
1.建立Activity的注意點
- 1.1一個Activity一個類,繼承Activity
- 1.2需要overide onCreate()方法,第一次執行的時候先呼叫onCreate
- 1.3必須在AndroidMainfest.xml中註冊Activity
- 1.4為Activity新增必要的控制元件
2.補充
- 通常一個xml對應一個activity,此外多個activity也可以對應一個xml
- xml的作用? —將動作和顯示分離
多個Activity
如何跳轉?
startActivity(Intent.intent);
Intent |
Intent的基本作用
包含一組資訊 | |
---|---|
component name | 指定啟動哪個activity,service,廣播接收器… |
action | 指定另一個activity做什麼 |
data | 傳送的資料 |
extras | 額外資訊,鍵值對 |
category | |
flags |
Intent使用簡易例項
Intent intent=new Intent(); intent.setClass(Activity0.this, Activity1.class); startActivity(intent);
* 新建activity1
* 記得activity要註冊2
Intent傳送資料 |
intent.putExtra("extras", "nice!");
接收
Intent intent = this.getIntent();
String extrasString = intent.getStringExtra("extras");
Intent傳遞資料給另一個應用程式(發簡訊為例)
Uri uri = Uri.parse("smsto:10086");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body" , "簡訊內容");
startActivity(intent);
Intent傳遞類物件 |
在我自己的專案裡準備用Intent將socket傳遞給第二個activity,特此感謝作者的教導。
自己的類要實現serializable
傳遞類物件
Bundle bundle = new Bundle();
bundle.putSerializable("socket", socket);
intent.putExtras(bundle);
得到類物件
Intent intent = getIntent();
socket = (ServerSocket) intent.getSerializableExtra("socket");
可以使用serializable或者parcelable
具體內容google學習
補充瑣碎知識點 |
1-哪些android元件可註冊Intent handlers
- Activity
- BroadcastReceiver
- Service
2- Url.parse(link)的作用(link為http的URL)
建立URL object(物件)
3-沒有指定action的IntentFilter將會匹配來自Intent的任何action
4-沒有category的IntentFilter僅僅匹配沒有catogory的Intent,而不是和萬用字元一樣(和action不一樣)
5-
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<action android:name="android.intent.action.MAIN" />
決定應用程式最先啟動的Activity
<category android:name="android.intent.category.LAUNCHER" />
決定應用程式是否顯示在程式列表裡
**6-**android.intent.category.DEFAULT的用途和使用
基礎控制元件 |
按鍵監聽
開啟監聽
client_login.setOnClickListener(new ButtonListener());
可以通過v.getId得到R.ID來區分各個按鍵
class ButtonListener implements OnClickListener
{
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(ClientActivity.this, ClientMainActivity.class);
ClientActivity.this.startActivity(intent);
}
}