4

LoginActivity と RegisterActivity という 2 つのアクティビティを持つ Android アプリケーションを作成しました。「a href」タグを使用してそれらを切り替える必要があります。だから私は AndroidManifest.xml ファイルでこれを行いました。

  <activity
        android:name="com.example.test.RegisterActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="com.example.test" />  
        </intent-filter>
    </activity>

LoginActivity では、「a」タグを文字列に追加しました。これにより、RegisterActivity に移動します。

TextView register = (TextView) findViewById(R.id.registerLink);
    register.setText(Html.fromHtml(
            "If you don't have an account " +
            "<a href=\"com.example.test://getApplicationContext\">register</a> "));
    register.setMovementMethod(LinkMovementMethod.getInstance());

これまでのところ、それは完全に機能します。次に、リンクも使用して LoginActivity に戻りたいと思います。次に、AndroidManifest ファイルでこれを行いました。

 <activity
        android:name="com.example.test.LoginActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
             <category android:name="android.intent.category.DEFAULT" />
                      <data android:scheme="com.example.test" />  
        </intent-filter>
        </activity>
 <activity

そして、ここで問題が発生します。RegisterActivity には同じ「href」値があり、loginActivity に戻りたいのですが、RegisterActivity に再びアクセスできます。

login = (TextView)findViewById(R.id.loginLink);
    login.setText(Html.fromHtml(
            "If you already have an account please " +
            "<a href=\"com.example.test://getApplicationContext\">login</a> "));
    login.setMovementMethod(LinkMovementMethod.getInstance());

この 2 つのアクティビティを区別する方法がわかりません。おそらくIDまたはいくつかのパラメーターが役立つかもしれませんが、どれがわかりません。よろしくお願いします!誰かが私を助けてくれることを願っています。

4

1 に答える 1

1

完全を期すために(そして、それに直面して、いくつかの甘い担当者のチャンスに直面しましょう)、私は以下に答えました.

リンクからアクティビティを起動する<a href=には、次のことを行う必要があります。

  1. ホストとスキームが定義されていることを確認してくださいmanifest.xml
  2. リンク対応 HTML で正しい呼び出しを行う

manifest.xml

<activity android:name=".LoginActivity">
    <intent-filter>
        <data android:host="loginactivity" android:scheme="my-scheme" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    </intent-filter>
 </activity>

次にコードで:

login = (TextView)findViewById(R.id.loginLink);
login.setText(Html.fromHtml(
        "If you already have an account please " +
        "<a href=\"my-scheme://loginactivity\">login</a> "));
login.setMovementMethod(LinkMovementMethod.getInstance());

Sherif elKhatib の功績: ( http://www.sherif.mobi/2011/09/html-and-activity-links-in-textview.html )

于 2013-06-15T12:50:22.127 に答える