3つのEdittextフィールドed1、ed2、ed3があります。ユーザーがed2/ed3をクリックすると、ダイアログが開き、そのダイアログから入力が取得されます。最初のクリックでは、カーソルが編集テキストボックスに移動し、次のクリックでは、ダイアログを開いて入力を取得できます。最初のクリックのダイアログを表示する必要があります。
質問する
10404 次
4 に答える
20
EditTextをunFocusableに設定します。このようにして、最初のタッチがクリックとして登録されます。
問題のEditTextのXMLに次を追加します。
android:focusableInTouchMode="false"
于 2012-04-20T14:32:02.843 に答える
2
代わりにボタンを使用してみませんか。ただし、その背景をデフォルトのEditTextとして設定してください。
于 2012-04-20T13:52:40.780 に答える
1
これがEditTextの動作方法です。onClick
イベントをトリガーするには、最初に焦点を合わせる必要があります。
編集:バラクが指摘するように、「フォーカス可能性」を無効にして、ワンクリックで開くことができます。欠点は、EditTextで入力できないことです(これは、ユースケースでは問題ない場合があります)。
于 2012-04-20T13:51:37.287 に答える
0
タイピングを維持するためにEditText
、ちょっとしたトリックをすることができます。
Dialog
初めて開いてからEditText
通常どおりに使用する必要がある場合は、次のように実行できます。
public class EditTextActivity extends Activity {
EditText et1;
int clickCount = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et1 = (EditText) findViewById(R.id.main_et1);
et1.setFocusableInTouchMode(false);
setOnClickListeners();
private void setOnClickListeners(){
location.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (clickCount == 0){
OpenDialog(); //Call the function to open the dialog created by you
et1.setFocusableInTouchMode(true);
}
clickCount = 1;
}
});
}
于 2012-07-27T22:20:34.027 に答える