5

Android ビューでは、Web ページのハイパーリンクと同様に機能するクリック可能なテキストが必要です。

通常のテキスト (ボタンの境界線なし) と同じように見えますが、タッチするとテキストの色が変わり、背景の色が反転することもあります。

背景が透明なボタンまたは TextView を使用する方が良いですか。どちらか一方を選択する必要があるのはいつですか?

どうもありがとう

4

5 に答える 5

3

ボタンを使用してselector、背景とテキストの両方を作成できます。

textselector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" android:color="#0000ff"/> <!-- pressed -->
    <item android:state_focused="true" android:color="@android:color/white"/> <!-- focused -->
    <item android:color="@android:color/white"/> <!-- default -->

</selector>

ボタンセレクター.xml

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" android:color="@android:color/white"/> <!-- pressed -->
    <item android:state_focused="true" android:color="#0000ff"/> <!-- focused -->
    <item android:color="#0000ff"/> <!-- default -->

</selector>

あなたのレイアウトxmlで

<Button
     android:id="@+id/button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:background="@drawable/buttonselector"
     android:text="some text"
     android:textColor="@drawable/textselector" />
于 2012-06-12T03:54:04.443 に答える
2

hotveryspicy は素晴らしい答えをくれて、本当に正しい方向に向けてくれました。ありがとうございます、しかし、私は応答にいくつかの問題がありました.

私が欲しいのは、通常の状態では黒いテキストと灰色の背景、選択された状態では白いテキストを持つ赤い背景を持つボタンです。このような:

ここに画像の説明を入力

hotveryspicy の提案を使用して、次の問題がありました。

  1. ドローアブルを textColor に割り当てようとすると、エラーが発生します。面白いですが、この種のことを行うことへの他の言及を見ています。XML検証がより厳密になったのでしょうか?

  2. buttonselector.xml で android:drawable を定義しなかった場合にもエラーが発生しました。セレクター eiter でドローアブルの色を設定できるようですが、実際にドローアブルを作成する必要があります。

とにかく、これは私がやったことです:

次のようなColor State Resourceを作成しました。

ファイル: res/colors/link_button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#ffffff"/> 
    <item android:color="#000000"/> 
</selector>

次に、次の 3 つのドローアブル:

Shape Drawableを使用した通常の状態のボタンの背景: ファイル: res/drawable/link_button.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">
    <solid  android:color="#cccccc"/>
</shape>

選択された状態のボタンの背景、Shape Drawable : ファイル: res/drawable/link_button_selected.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">
    <solid  android:color="#ff0000"/>
</shape>

次に、2 つの形状から選択するDrawable Selectorを作成しました。ファイル: res/drawable/link_button_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

 <item 
     android:drawable="@drawable/link_button_selected"
     android:state_pressed="true" />

 <item 
     android:drawable="@drawable/link_button" />
</selector>

次に、私のレイアウトでは、ボタンは次のようになります。

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:text="Button"
    android:textColor="@color/link_button" 
    android:background="@drawable/link_button_selector"
    />

みんな助けてくれてありがとう!

于 2012-06-14T20:17:54.897 に答える
1

Google のために:

ボタンをリンクのように見せるのではなく、TextView をクリック可能にしてみませんか? これは事実上、私が望んでいたものであり、私の使用のために機能しました。テキストをクリックしてインテントを生成できるようにしたかったのです。

TextView.setOnClickListener(new View.OnClickListener()
于 2013-05-22T17:13:20.847 に答える
1

のような文字列を追加

  <string name="link">'<a href="http://www.google.com" rel="nofollow">Google</a>'</string>  

あなたのレイアウトで

<TextView  
          android:id="@+id/link"  
          android:layout_width="wrap_content"  
          android:layout_height="wrap_content"  
          android:autoLink="all"  
          android:linksClickable="true"  
          android:text="@string/link" />  
于 2012-06-12T03:54:20.860 に答える
1

linkify クラスを使用してテキストをリンクできます。thisthis をいくつかの例で見てください

于 2012-06-12T04:05:49.583 に答える