編輯:關於Android編程
實例一:
有三個Activity:MainActivity.java/BAcitvity.java/CActivity.java
假設這是一個照相應用MainActivity是程序入口,BActivity和CActivity都可以處理照相的內容。
在我們不會使用action的時候我們要使這個應用既可以使用BActivity照相,又能使用CActivity照相如何實現?
當然是在MainActivity中寫兩個Button,
new Intent(MainActivity.this,BActivity.class);
new Intent(MainActivity.this,CActivity.class);
通過兩種不同的Intent來發起請求。
那麼如何使用action來實現呢?
在xml中先這樣定義:
[html]
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".BActivity"
android:label="@string/title_activity_main"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="com.h3c.intent.ACTION_VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
<activity
android:name=".CActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="com.h3c.intent.ACTION_VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".BActivity"
android:label="@string/title_activity_main"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="com.h3c.intent.ACTION_VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
<activity
android:name=".CActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="com.h3c.intent.ACTION_VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
我們在MainActivity中實現一個Button,點擊發送:
new Intent("com.h3c.intent.ACTION_VIEW");
此時就會彈出一個Dialog讓我們自動選擇是使用BActivity還是使用CActiviy了,就如前文我提到camer360的那個例子
這也就是隱式intent,即發送一種類型的action,可以讓所有支持該類型的activity都收到消息,然後由用戶選擇使用哪個activity處理。
實例二:(Android分享與接收分享)
自己之前其實也接觸過action,但是沒有自己的去想清楚。比如在做DLNA這個項目的時候需要支持第三方媒體app分享給DLNA,如何實現呢?
首先看看如何分享給別人:
[java]
public static void shareText(Context context, String title, String text) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, title);
intent.putExtra(Intent.EXTRA_TEXT, text);
context.startActivity(Intent.createChooser(intent, title));
}
public static void shareText(Context context, String title, String text) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, title);
intent.putExtra(Intent.EXTRA_TEXT, text);
context.startActivity(Intent.createChooser(intent, title));
}就是用上文提到的隱式intent,因為我並不知道有那些應用可以支持分享,所以我用隱式intent發起分享這一類的請求。
我們再看如何支持分享:
[html]
<activity android:name=".SharePage" android:label="分享到微博">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
<activity android:name=".SharePage" android:label="分享到微博">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>是的,使用action告訴別人我支持SEND這類隱式intent,注意必須也有這樣一句話,否則運行會報錯。[html] view plaincopyprint?<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.DEFAULT" />最後通過data約束一下格式。
大家應該跟我一樣終於明白action的用法了吧!
作者:h3c4lenovo
首先給大家展示靓照,對效果圖感興趣的朋友可以繼續往下閱讀哦。ViewPager這個小demo實現的是可以左右循環滑動圖片,下面帶索引,滑到最後一頁在往右滑動就要第一頁,第
MainActivity如下: package cc.textview5; import android.os.Bundle; import android.tex
概述Android Settings模塊說簡單也簡單,說難也難,裡面涉及到的知識點也挺多的。我們知道Settings主要是用於配置一些系統選項或屬性值,通過修改設置項就能
布局文件activity_main.xml gridview_item.xml這個是一個item的單元格樣式的,有圖片和文字 MainActi