1

オンタッチTextViewに変換する がありEditViewます。ただし、ユーザーが の外側の任意の場所に触れたときに、逆のことが発生するようにしたいと考えていますEditView。を使用しようとしましたsetOnFocusChangeListenerが、他の何かがフォーカスされたときにのみ機能するようです。そこで傍受onTouchして確認できることはわかっていますが、このシナリオを処理する簡単な方法はありますか?

4

2 に答える 2

1

私も自分のプロジェクトでこれを使用し、次のように解決しました:

EditText の外側のレイアウトを「focusable=true」および「clickable=true」に設定します。EditText には背景がないため、TextView のように見えます。フォーカスの変更時に、EditText のテキストの色を変更して、ユーザーが自分を見ることができるようにします。テキストを編集できます。次に、外側のレイアウトにはOnClickListenerがあり、クリックするとソフトウェアキーボードが非表示になり、テキストの色がTextViewの色に戻ります。これはすべて、要素を切り替えることなく機能しています。必要に応じて、両方の要素を FrameLayout に配置して、要素がレイアウト内で同じ位置にあることを確認し、TextView に OnClickListener を実装し、onClick イベントでオブジェクトの可視性を切り替えることができます。

多分このアイデアはあなたを助ける;)

于 2012-02-09T05:47:28.177 に答える
0

TextView編集ビューの親をフォーカス可能に設定します。

すべてのレイアウトとビューをクリック可能にし、それぞれに onClickListener を実装し、以下のように onClickListener を記述します。

private ClickListener implements OnClickListener
{
    public void onClick(View view)
    {
         if(v.getId()!=R.id.editView)
         {
              //Write your code here to replace views
         }
    }
}
于 2012-02-09T05:47:08.023 に答える