Android 安卓Linkify

Android 安卓Linkify,android,linkify,Android,Linkify,我正在尝试创建一个Android活动页面,即SecondaryActivity,它提供一个指向网页的链接,该网页使用指定的链接打开web浏览器。我从我的主活动页面启动活动页面,如下所示: Intent intent = new Intent(this, SecondaryActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); MainActivity.this.startActivity(intent); 我的Seco

我正在尝试创建一个Android活动页面,即SecondaryActivity,它提供一个指向网页的链接,该网页使用指定的链接打开web浏览器。我从我的主活动页面启动活动页面,如下所示:

Intent  intent = new Intent(this, SecondaryActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainActivity.this.startActivity(intent);
我的SecondaryActivity中有以下代码,但它给出了以下错误:

代码


Linkify不会工作,如果你正在尝试它与模拟器,如果它映射地址,但它的工作很好的休息。在您的代码中,您试图通过提供链接打开浏览器,这没有问题,这是完美的。当我看到你的错误日志时,我可以告诉你linkify没有问题。您正试图从上下文之外调用您的活动。在这种情况下,在启动活动时,使用标志\u activity\u NEW\u TASK标志启动活动。希望这将解决您的问题

我无法使用此方法,因此我在网站上使用了以下方法:



我以编程方式设置了link1\u lbl和link1\u视图属性

Hi,感谢您的回复。我仍然收到相同的错误(01-22 01:05:52.926:error/AndroidRuntime(1428):android.util.AndroidRuntimeException:从活动上下文外部调用startActivity()需要标志“活动”新任务标志。这真的是您想要的吗)但我现在以以下方式开始活动:Intent Intent=newintent(getApplicationContext(),ApplianceActivity.class);intent.addFlags(intent.FLAG\u活动\u新任务);星触觉(意向);试着像这样开始活动:“yourclassname.this.startActivity(intent);“我得到了错误”在范围内无法访问ApplianceActivity类型的封闭实例“我误解了你的建议;我试图以这种方式开始活动,但仍然出现相同的错误。
 protected void onPostExecute(Map<String,Float> sampleData) {
             TableLayout table = (TableLayout) findViewById(R.id.mainTable);
             if(sampleData == null) { 
                 // If no information is found for the user, add the message to the view letting them know where
                 // to go to set up their appliances...

                 TextView tvDynamicKey = new TextView(getApplicationContext());                     
                 tvDynamicKey.setText("No appliances have been found, please help us by \nlogging onto our website. Click here.");
                 Pattern pattern = Pattern.compile("here");
                 String scheme = "http://www.google.com/";
                 Linkify.addLinks(tvDynamicKey, pattern, scheme);

                 tvDynamicKey.setLayoutParams(new TableRow.LayoutParams(1));

                 TableRow tr = new TableRow(getApplicationContext());

                 tr.setId(101);
                 tr.addView(tvDynamicKey);
                 table.addView(tr);

                 TextView tvDynamicKey2 = new TextView(getApplicationContext());
                 tvDynamicKey2.setText("Contact me at test@test.com \nfor details!");
                 pattern = Pattern.compile("test@test.com");
                 scheme = "test@test.com";
                 Linkify.addLinks(tvDynamicKey2, pattern, scheme);

                 // TODO When I click  the link here, I get an error:

                 tr = new TableRow(getApplicationContext());
                 tr.setId(102);
                 tr.addView(tvDynamicKey2);
                 table.addView(tr);
             } 
    }
01-21 23:31:52.715: ERROR/AndroidRuntime(838): FATAL EXCEPTION: main
01-21 23:31:52.715: ERROR/AndroidRuntime(838): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.app.ContextImpl.startActivity(ContextImpl.java:617)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.content.ContextWrapper.startActivity(ContextWrapper.java:258)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.text.style.URLSpan.onClick(URLSpan.java:62)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:216)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.widget.TextView.onTouchEvent(TextView.java:6577)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.view.View.dispatchTouchEvent(View.java:3766)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1671)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.app.Activity.dispatchTouchEvent(Activity.java:2086)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1655)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1785)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.os.Looper.loop(Looper.java:123)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at android.app.ActivityThread.main(ActivityThread.java:4627)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at java.lang.reflect.Method.invokeNative(Native Method)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at java.lang.reflect.Method.invoke(Method.java:521)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-21 23:31:52.715: ERROR/AndroidRuntime(838):     at dalvik.system.NativeStart.main(Native Method)
<TableRow>
        <TextView
                android:id="@+id/link1_lbl"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text=""
                android:textSize="16sp"
                android:paddingRight="5dip"/>
            <!--
                Using autoLink='web' to show the text as a web link
             -->
            <TextView
                android:id="@+id/link1_view"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:autoLink="web"
                android:text=""/>
        </TableRow>