EditText私のページには、2 つのボタンと一緒に多くの要素があります。ユーザーがいずれかのEditTextフィールドに触れて任意のボタンをクリックし、触れたまさにそのフィールドに特定の値を挿入するようにしますEditText。キーパッドを使用した入力は許可されていません。これを行うのを手伝ってください。
			
			101929 次
		
9 に答える
            39        
        
		
これは私にとってはうまくいきます。ブール値を返します。
myEditText.hasFocus()
于 2015-12-23T07:46:32.853   に答える
    
    
            26        
        
		
できることの 1 つは、グローバル変数を宣言することです。グローバル変数は、を使用してevalueを通知し、 の値に基づいて、ボタン クリックでテキスト値を edittext に設定できます。あなたが理解した願っています。last selected EditTextonTouchListenerevalue
そのためのコードは次のようになります。
EditText e1,e2;
    Button b1,b2;
    String evalue;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        e1=(EditText)findViewById(R.id.editText1);
        e2=(EditText)findViewById(R.id.editText2);
        b1=(Button)findViewById(R.id.button1);
        b2=(Button)findViewById(R.id.button2);
        e1.setOnTouchListener(new View.OnTouchListener()
        {
            public boolean onTouch(View arg0, MotionEvent arg1)
            {
                evalue="1";
                return false;
            }
        });
        e2.setOnTouchListener(new View.OnTouchListener()
        {
            public boolean onTouch(View arg0, MotionEvent arg1)
            {
                evalue="2";
                return false;
            }
        });
        b1.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View arg0) {
                if(evalue=="1")
                {
                    e1.setText("yes");
                }
                if(evalue=="2")
                {
                    e2.setText("yes");
                }
            }
        });
        b2.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View arg0) {
                if(evalue=="1")
                {
                    e1.setText("No");
                }
                if(evalue=="2")
                {
                    e2.setText("No");
                }
            }
        });
    }
その論理コーディング..マークまでではありません..より良いものを見つけた場合。それを使用します。ありがとうございました。
于 2013-06-27T12:11:31.420   に答える
    
    
            8        
        
		
&をFragment実装してください:OnTouchListenerOnFocusChangeListener
public class AttributesFragment extends Fragment 
                       implements OnTouchListener, OnFocusChangeListener {
次に、次を使用して実装します。
@Override
public boolean onTouch(View view, MotionEvent event) {
    if (view instanceof EditText) {
        view.setOnFocusChangeListener(this); // User touched edittext
    }
    return false;
}
@Override
public void onFocusChange(View v, boolean hasFocus) {
}
作成後にリスナーを設定することを忘れないでくださいEditText
editText.setOnTouchListener(this);
このように、EditTextボックスがデフォルトでフォーカスされていても、ユーザーがフィールドを変更していない場合、onFocusChangeイベントは発生しません。
于 2013-12-18T23:47:28.097   に答える