প্যারামিটারের ভেরিয়েবল ইনস্টস্টের ব্যবহারের তালিকার ভুল উপায়ে !!!
btnSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
btnSend.setClickable(false);
}
});
সঠিক ভাবে:
btnSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/** check given view by assertion or cast as u wish */
if(v instance of Button) {
/** cast */
Button button = (Button) v;
/** we can perform some check up */
if(button.getId() == EXPECTED_ID) {
/** disable view */
button.setEnabled(false)
button.setClickable(false);
}
} else {
/** you can for example find desired view by root view */
Button bt = (Button) v.getRootView().findViewById(R.id.btId);
/*check for button */
if(bt!=null) {
/** disable button view */
...
} else {
/** according to @jeroen-bollen remark
* we made assumption that we expected a view
* of type button here in other any case
*/
throw new IllegalArgumentException("Wrong argument: " +
"View passed to method is not a Button type!");
}
}
}
});
সম্পাদনা: @ জিরোইন-বোলেন এর উত্তরে
View.OnClickListener
হয় ইন্টারফেস সংজ্ঞা যখন একটি দৃশ্য ক্লিক করা হয় একটি কলব্যাক প্রার্থনা করা হবে।
সঙ্গে পদ্ধতি সংজ্ঞা
void onClick(View v);
যখন ভিউ ক্লিক করা হয় তখন ভিউ ক্লাস অবজেক্টটি প্যারামিটার হিসাবে পাঠানোর পদ্ধতিটিতে কলিক () ক্লিক করে তোলে, সুতরাং নাল ভিউ প্যারামিটারটি ঘটতে হবে না যদি এটি যদি একটি দৃ an ় ত্রুটি হয় তবে উদাহরণস্বরূপ যখন ভিউ অবজেক্ট শ্রেণিটি ধ্বংস হয়ে গিয়েছিল (এর জন্য) উদাহরণস্বরূপ জিসি দ্বারা সংগৃহীত) বা পদ্ধতি হ্যাকের কারণে হেরফের হয়েছিল
উদাহরণ এবং নাল সম্পর্কে সামান্য
জেএলএস / 15.20.2। তুলনা অপারেটর উদাহরণ টাইপ করুন
চলাকালীন সময়ে, রিলেশনালএক্সপ্রেসের মান শূন্য না হলে এবং ক্লাসকাস্টএক্সসেপশন না বাড়িয়ে রেফারেন্স টাইপটিতে রেফারেন্স দেওয়া যেতে পারে তবে ইনস্ট্যান্টফোনারের ফলাফলটি সত্য।
অন্যথায় ফলাফল মিথ্যা ।
লেখকের কাছ থেকে তিনটি শব্দ
যদি আপনি জিজ্ঞাসা করেন কেন?
নলপয়েন্টার এক্সসেপশন থেকে খুব দূরে থাকুন
আরও কিছু কোড আপনার কোডে পরে বাগ ট্র্যাকিংয়ের সময় সাশ্রয় করবে এবং অস্বাভাবিকতার ঘটনা হ্রাস করবে।
নিম্নলিখিত উদাহরণ বিবেচনা করুন:
View.OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
btnSend.setClickable(false);
}
});
btnSend.setOnClickListener(listener)
btnCancel.setOnClickListener(listener)