0

任何人都可以提供一个带有源代码的示例:

“当我启动一个 Intent 时,Android 会弹出一个“使用完成操作”对话框。”

4

3 回答 3

2

当有两个或多个应用程序在其清单中声明它们处理相同的意图时,Android 将显示该对话框。为了演示此行为,您需要两个响应相同意图的示例应用程序 - 您可以找到一个简单的 Hello World 示例,克隆它并修改清单以赋予其中一个不同的名称,第三个应用程序调用startActivity()出于同样的目的。

于 2012-02-28T23:54:51.377 回答
1

如果您希望将您的应用列为选项之一...您需要做两件事...这是 Activity 的代码

public class YourActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        String value = getIntent().getStringExtra(Intent.EXTRA_TEXT);
    }
}

然后你需要把它添加到你的 AndroidManifest.xml

<activity android:name=".YourPageActivity">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>

如果您不想使用 .SEND,可以在此处找到完整的操作列表及其数据

http://developer.android.com/reference/android/content/Intent.html

您需要在 AndroidManifest.xml 中使用常量值,例如 ACTION_SEARCH 将是“android.intent.action.SEARCH”

如果您想从您的应用程序中调出选项列表...

btnShare.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View view) {
        final String value = txtLongUrl.getText().toString();

        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.putExtra(Intent.EXTRA_TEXT, value);
        intent.setType("text/plain");

        startActivity(intent);
    }
}

有关工作示例,请参见DBitly

于 2012-02-29T00:03:41.067 回答
0

如果您只想查看此弹出窗口,请尝试执行一个具有多个现有应用程序来处理它的操作。

例如,给自己发送一条包含电子邮件地址的短信。电子邮件地址将变成您可以触摸的链接,默认选项将使Complete action using弹出窗口出现,提供GmailMail

于 2012-02-29T01:03:33.727 回答