私はこのアプリをiphoneに持っていて、Android用に作りたいです。EditTextでテキストの編集を開始すると、ディスプレイの上部にメッセージ付きのツールチップが表示されます。Androidでも機能させたいのですが、しませんでした。役立つものは何も見つかりません、ここにiphoneprintscreenとのリンクがあります
4 に答える
Androidにはホバリングツールチップの概念はありません。次の2つのいずれかを実行できます。
LongClickListener
EditText
ユーザーが長押しするとトーストが表示されます。このようなもの:
View view = (View)findViewById(R.id.your_view);
view.setOnLongClickListener(new OnLongClickListener() {
@Override
public void onLongClick(View v) {
Toast toast = Toast.makeText(this, "Show hint here", Toast.LENGTH_SHORT);
}
});
また
EditTextにヒントを表示して、ユーザーに何を入力する必要があるかを知らせます。
<EditText
android:hint="Your tip here" />
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
//your code here
//showtooltip();
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
}
これは、EditTextでOnFocusChangeListenerを使用して実行できます
アイデアは、ツールチップのレイアウトを作成し、フォーカスの変更でその可視性を変更することです
フレームレイアウトを使用して通常のレイアウトの上部に配置するか、レイアウトの上部にツールチップレイアウトを追加するだけで、ヒントレイアウトを作成できます。どちらの場合も、可視性は失われます。
次に、OnFocusChangeListenerを使用して、ツールチップを表示または非表示にします
edittxt.setOnFocusChangeListener(new OnFocusChangeListener()
{
@Override
public void onFocusChange(View v, boolean hasFocus)
{
if (hasFocus == true)
{
// Show tool tip
}else{
// Hide tool tip
}
}
});
OnKeyListenerなどのさまざまなリスナーを使用してこれを強化することもできます
私の答えを改善するためだけに
また、AndroidのTextWatcherクラスを使用して、テキストの変更に対応することもできます。
例でのTextWatcherの使用については、以下を参照してください
TextWatcher textWatcher = new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s , int start,int before,int count){
}
@Override
public void afterTextChanged(Editable s){
}
@Override
public void beforeTextChanged(CharSequence s, int start,int count, int after){
}
};
Then use it as
edittext.addTextChangedListener(textWatcher);
これを使用できます:TooltipCompat.setTooltipText(editText、editText.getText())