android - একটি EditableText ফোকাস হারায় যখন আমি কিভাবে জানতে পারি?




android-edittext lostfocus (4)

আপনার ইন্টারফেসটি OnFocusChangeListener() প্রয়োগ করুন যদি আপনি এই ইন্টারফেসের একটি ফ্যাক্টরাইজড ব্যবহার চান, উদাহরণস্বরূপ:

public class Shops extends AppCompatActivity implements View.OnFocusChangeListener{

আপনার OnCreate আপনি উদাহরণস্বরূপ শ্রোতা যোগ করতে পারেন:

editTextResearch.setOnFocusChangeListener(this);
editTextMyWords.setOnFocusChangeListener(this);
editTextPhone.setOnFocusChangeListener(this);

তারপর অ্যান্ড্রয়েড স্টুডিও আপনাকে ইন্টারফেস থেকে পদ্ধতি যোগ করার জন্য প্রম্পট করবে, এটি স্বীকার করুন ... এটি এমন হবে:

@Override
public void onFocusChange(View v, boolean hasFocus) {
// todo your code here...
}

এবং আপনি একটি factorized কোড পেয়েছেন, আপনি শুধু যে করতে হবে:

@Override
public void onFocusChange(View v, boolean hasFocus) {
   if (hasFocus) {
        editTextResearch.setText("");
        editTextMyWords.setText("");
        editTextPhone.setText("");
    }
    if (!hasFocus){
        editTextResearch.setText("BlaBlaBla");
        editTextMyWords.setText(" One Two Tree!");
        editTextPhone.setText("\"your phone here:\"");
    }
}

আপনি যে কোনও কোডটি কোড করেছেন !hasFocus হ'ল ফোকাস !hasFocus এমন !hasFocus আচরণের জন্য, যা কৌশলটি করা উচিত! কিন্তু সতর্ক থাকুন যে এই অবস্থায়, ফোকাস পরিবর্তন ব্যবহারকারীর এন্ট্রি overwrite হতে পারে!

যখন আমার EditText ফোকাস হ্রাস পায় তখন আমি এটি ধরতে হবে, আমি অন্য প্রশ্ন অনুসন্ধান করেছি কিন্তু আমি কোনও উত্তর খুঁজে পাইনি।

আমি এই মত OnFocusChangeListener ব্যবহৃত

OnFocusChangeListener foco = new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        // TODO Auto-generated method stub

    }
};

কিন্তু, এটা আমার জন্য কাজ করে না।


কোটলিন উপায়

editText.setOnFocusChangeListener { _, hasFocus ->
    if (!hasFocus) {  }
}

জাভা 8 ল্যাম্বা এক্সপ্রেশন ব্যবহার করে:

editText.setOnFocusChangeListener((v, hasFocus) -> {
    if(!hasFocus) {
        String value = String.valueOf( editText.getText() );
    }        
});

তার কাজ সঠিকভাবে

EditText et_mobile= (EditText) findViewById(R.id.edittxt);

 et_mobile.setOnFocusChangeListener(new OnFocusChangeListener() {          
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
               // code to execute when EditText loses focus
 if (et_mobile.getText().toString().trim().length() == 0) {
                        CommonMethod.showAlert("Please enter name", FeedbackSubmtActivity.this);
                    }
            }
        }
    });



public static void showAlert(String message, Activity context) {

    final AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setMessage(message).setCancelable(false)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                }
            });
    try {
        builder.show();
    } catch (Exception e) {
        e.printStackTrace();
    }

}




lostfocus