【问题标题】:Exception when using Linkify to access an Activity使用 Linkify 访问 Activity 时出现异常
【发布时间】:2014-12-05 13:35:39
【问题描述】:

我在尝试通过单击 textview 启动 Activity 时遇到异常。 这是用于访问活动的代码

tv1.setText(result+"  ");
                tv1.setEms(5);
                Pattern pattern = Pattern.compile("[a-zA-Z/a-zA-Z]");
                Linkify.addLinks(tv1, pattern,null);  
                tv1.setOnClickListener(new OnClickListener() {

                    public void onClick(View v) {
                        Intent ourIntent = new Intent(Http_schedule.this, HttpSecondSchedule.class);                    
                        try {
                            ourIntent.putExtra("Voyage", (String)jo.get("Voyage"));
                            ourIntent.putExtra("Ship", jo.get("Ship").toString());
                            startActivity(ourIntent);
                        } catch (JSONException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                });
                tbrow2.addView(tv1);

这是我注册第二个活动的 android.manifest 文件

 <activity
        android:name=".HttpSecondSchedule"
        android:label="Seat Availability" 
        android:screenOrientation="portrait"
        android:configChanges="keyboardHidden|orientation|screenSize"
        >
        <intent-filter>
            <action android:name="com.example.ship_service_list.HttpSecondSchedule" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

这是我得到的错误

12-05 08:16:38.600: E/InputEventReceiver(1458): Exception dispatching input event.
12-05 08:16:38.600: E/MessageQueue-JNI(1458): Exception in MessageQueue callback: handleReceiveCallback
12-05 08:16:38.770: E/MessageQueue-JNI(1458): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=v (has extras) }
12-05 08:16:38.770: E/MessageQueue-JNI(1458):   at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632)
12-05 08:16:38.770: E/MessageQueue-JNI(1458):   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)

]

【问题讨论】:

  • 你在使用NDK吗?错误似乎来自JNI
  • 模式模式 = Pattern.compile("[a-zA-Z/a-zA-Z]"); //Linkify.addLinks(tv1, pattern,null);我这样做了,错误消失了......有没有其他选择。
  • 至少有人可以说如何使用 Linkify 调用活动。我是 android 新手,有一些帮助
  • 您可能需要根据您的需要更新您的问题,我已经添加了linkify标签

标签: android android-intent android-activity linkify


【解决方案1】:
Intent ourIntent = new Intent(Http_schedule.this, HttpSecondSchedule.class);                    
       try {
             ourIntent.setAction("com.example.ship_service_list.HttpSecondSchedule");
              ourIntent.putExtra("Voyage", (String)jo.get("Voyage"));
              ourIntent.putExtra("Ship", jo.get("Ship").toString());
              startActivity(ourIntent);
        } catch (JSONException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
        }

【讨论】:

    【解决方案2】:

    你需要有两个元素。一 将用于 MAIN 和 LAUNCHER。另一个将用于查看, BROWSABLE/DEFAULT,以及你的元素:

    <activity android:name=".MyActivity"> <intent-filter>` <action android:name="android.intent.action.MAIN"></action> <category android:name="android.intent.category.LAUNCHER"></category> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"></action> <category android:name="android.intent.category.DEFAULT"></category> <category android:name="android.intent.category.BROWSABLE"></category> <data android:host="my.app" android:scheme="http"></data> </intent-filter> </activity>

    然后,http://my.app 应该启动您的活动。

    --https://stackoverflow.com/a/7417688/1815624

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-06
      相关资源
      最近更新 更多