7

私のアプリケーションでは、利用規約のテキストがいくつかあります。

登録することにより、利用規約に拘束され、プライバシーポリシーを読んだことに同意したことになります。

利用規約プライバシーポリシーという言葉はクリック可能で、アラートボックスを表示する必要があります。

まず、文を4つに分割してみましたTextView

  1. 登録することにより、あなたは私たちに拘束されることに同意します
  2. 利用規約
  3. そしてあなたが私たちを読んだこと
  4. プライバシーポリシー。

これは、次のレイアウトXMLでうまく機能しました。

 <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/termsandcondtion"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:orientation="horizontal" >

        <TextView
            android:id="@+id/terms_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/terms_1"
            android:textColor="#000000"
            android:textSize="12dp" />

        <TextView
            android:id="@+id/terms"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:onClick="showTerms"
            android:text="@string/terms_2"
            android:textColor="#000000"
            android:textSize="12dp" />

        <TextView
            android:id="@+id/terms_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/terms_3"
            android:textColor="#000000"
            android:textSize="12dp" />

        <TextView
            android:id="@+id/termsofuse"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:onClick="showTermsofUse"
            android:text="@string/terms_4"
            android:textColor="#000000"
            android:textSize="12dp" />
    </LinearLayout>

ポップアップを表示するためのコードは次のとおりです。

WebView wv = new WebView(this);

    wv.loadUrl(url);

    wv.setWebViewClient(new WebViewClient()
    {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            view.loadUrl(url);

            return true;
        }
    });
    AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setTitle("Privacy Policy");
    alert.setView(wv);
    alert.setNegativeButton("Close", new DialogInterface.OnClickListener()
    {
        public void onClick(DialogInterface dialog, int id)
        {
        }
    });
    alert.show();

問題は、4つTextViewが互いに適切に位置合わせされていないことです。つまり、1つを使用TextViewして、特定の単語(利用規約、プライバシーポリシー)をクリックしたときにポップアップダイアログを表示する必要TextViewがあります。

これを行うための最良の方法は何ですか?

4

1 に答える 1

11

私はあなたが必要になると思いますSpannable Strings。また、この質問は役に立ちます。作成ClickableSpanすることはあなたの問題にとって良い選択でしょう。

SpannableString stringToSpan = new SpannableString("<your sentence>");
TextView textView = (TextView) findViewById(R.id.<yourTextView ID>);
textView.setText(stringToSpan);
textView.setMovementMethod(LinkMovementMethod.getInstance());
ClickableSpan clickableSpan = new ClickableSpan() {
      @Override
      public void onClick(View textView) {
       //alert box code here
       }
      };
stringToSpan.setSpan(clickableSpan, <start position of span>,<end position>,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
   }
于 2012-11-19T08:11:32.800 に答える