繁体   English   中英

听意图Intent ACTION_VIEW的活动

[英]Activity to listen to Intent ACTION_VIEW

我想在下面的setMovementMethod中打开一个自定义活动。

TextView tx = (TextView)findViewById(R.id.txtHelp);
tx.setText(Html.fromHtml(getString(R.string.help)));
tx.setMovementMethod(LinkMovementMethod.getInstance());

我用链接定义了html,单击/按下链接时,我希望我的活动打开以显示图像(取决于单击的链接)

在我的android应用程序中查看了此线程句柄textview链接,并尝试遵循使用的答案。 在这里,我的清单中的活动定义为侦听意图action.View。

<activity android:name="com.example.metermanager.ImagesActivity"                    
    android:screenOrientation="portrait">
    <intent-filter>
        <category android:name="android.intent.category.DEFAULT" />
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="com.example.metermanager" />  
    </intent-filter>

这是活动代码。

package com.example.metermanager;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class ImagesActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.images);

        String text= getIntent().getDataString();
        Log.e("link", text);

    }
}

但是,单击链接会导致以下错误,但定义了意图的活动。

 11-19 03:17:04.827: E/InputEventReceiver(1409): Exception dispatching input event.
 11-19 03:17:04.827: E/MessageQueue-JNI(1409): Exception in MessageQueue callback: handleReceiveCallback
 11-19 03:17:04.867: E/MessageQueue-JNI(1409): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=here (has extras) }
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.app.Activity.startActivityForResult(Activity.java:3424)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.app.Activity.startActivityForResult(Activity.java:3385)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.app.Activity.startActivity(Activity.java:3627)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.app.Activity.startActivity(Activity.java:3595)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.text.style.URLSpan.onClick(URLSpan.java:62)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:217)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.widget.TextView.onTouchEvent(TextView.java:7713)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.View.dispatchTouchEvent(View.java:7706)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.app.Activity.dispatchTouchEvent(Activity.java:2458)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.View.dispatchPointerEvent(View.java:7886)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3954)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3833)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3525)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3582)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5602)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5582)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5553)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5682)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.os.MessageQueue.nativePollOnce(Native Method)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.os.MessageQueue.next(MessageQueue.java:138)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.os.Looper.loop(Looper.java:123)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at android.app.ActivityThread.main(ActivityThread.java:5017)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at java.lang.reflect.Method.invokeNative(Native Method)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at java.lang.reflect.Method.invoke(Method.java:515)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
 11-19 03:17:04.867: E/MessageQueue-JNI(1409):  at dalvik.system.NativeStart.main(Native Method)
 11-19 03:17:04.867:

有什么原因不起作用?

罗纳德

您要链接到该活动的URL是什么。

您的数据架构声明似乎是错误的。

尝试

<data android:scheme="content" android:host="com.example.metermanager" />

代替

<data android:scheme="com.example.metermanager" />

此外,您的链接不应

<a href="here">

<a href="content://com.example.metermanager/some_specific_data">

帮助文本必须如下所示,然后与ImagesActivity意图过滤器匹配:

<string name="help">&lt;a href="com.example.metermanager://ImagesActivity">Start ImagesActivity&lt;/a></string>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM