কোড ব্যবহার করে কীভাবে একটি বোতাম ক্লিক করতে হবে?


216

অ্যান্ড্রয়েডে কোড ব্যবহার করে কীভাবে আমি একটি বোতাম ক্লিক ইভেন্টটি ট্রিগার করতে পারি? আমি যখন অন্য কোনও ইভেন্ট ঘটে তখন আমি প্রোগ্রামটিমে বাটন ক্লিকটি ট্রিগার করতে চাই।

একই সমস্যার মুখোমুখি হচ্ছি

public void onDateSelectedButtonClick(View v){
    /*Something  Alarm Management 
    http://www.java2s.com/Code/Android/Core-Class/Alarmdemo.htm
    copied code from this site*/
}

বাটন কোড:

<Button
    android:onClick="onDateSelectedButtonClick"
    android:text="Set notification for this date" />

তবে আমি অনিক্লিকএভেন্ট ছাড়াই সেই ফাংশনটি অনলয়েডলআউটকে কল করতে চাই


আপনি দয়া করে সমস্যা নির্দিষ্ট করতে পারেন? তুমি এটা কেন চাও? আপনি কি কিছু কোড কার্যকর করতে ট্রিগার করতে চান?
ভ্লাদিমির ইভানভ

হ্যাঁ, আমি বোতাম ক্লিকের জন্য কার্যকর করতে কোডটি ট্রিগার করতে চাই।
স্যাম

উত্তর:


445

আরও ভাল উপায় আছে।

View.performClick();

http://developer.android.com/reference/android/view/View.html#performClick ()

এটি আপনার সমস্ত সমস্যার উত্তর দেওয়া উচিত। প্রতিটি ভিউ এই ফাংশনটির উত্তরাধিকার সূত্রে প্রাপ্ত, বোতাম, স্পিনার ইত্যাদি inher

কেবল পরিষ্কার করার জন্য, ভিউতে স্থির পারফরম্যান্স ক্লিক () পদ্ধতি নেই। আপনাকে ভিউয়ের উদাহরণে অবশ্যই پرফর্ম ক্লিক () কল করতে হবে। উদাহরণস্বরূপ, আপনি কেবল কল করতে পারবেন না

View.performClick();

পরিবর্তে, এর মতো কিছু করুন:

View myView = findViewById(R.id.myview);
myView.performClick();

2
তবে অ্যান্ড্রয়েডের ব্যাক বোতামটি কী?
পিটার আজতাই

4
আপনার ফোনে পিছনের বোতামটির জন্য কোনও "ভিউ" নেই। এই বোতাম টিপতে আপনাকে কী শ্রোতাদের ব্যবহার করতে হবে। এটি পুরোপুরি একটি ভিন্ন সমস্যা
মুনলাইটচিজ

3
@ মুন - আপনি যদি লোকদের আপনার মন্তব্য সম্পর্কে অবহিত করতে চান তবে তাদের "@" দিয়ে শুরু করুন এবং আপনি যে ব্যবহারকারীকে অবহিত করতে চান তার প্রথম কয়েকটি অক্ষর দিয়ে .... (পোস্টে মন্তব্য করা লেখকরা স্বয়ংক্রিয়ভাবে বিজ্ঞপ্তি পান, তবে মন্তব্যকারীরা তা করে না)
পিটার আজতাই

14
এই উত্তরে দেখানো কোডটি কিছুটা বিভ্রান্তিকর। কেবল পরিষ্কার করার জন্য, ভিউতে স্থির পারফরম্যান্স ক্লিক () পদ্ধতি নেই। আপনাকে ভিউয়ের উদাহরণে অবশ্যই پرফর্ম ক্লিক () কল করতে হবে।
asukasz উইকিল্যান্ড

3
এটি কেবল বিভ্রান্তিকর যদি আপনি জানেন না আপনি কী করছেন।
মুনলাইটচিজ

52

কেবল মুনলাইটচিইজ কী বলেছে তা স্পষ্ট করতে: অ্যান্ড্রয়েডের কোডের মাধ্যমে একটি বোতাম ক্লিক ইভেন্টটি ট্রিগার করতে নিম্নলিখিতটি সরবরাহ করুন:

buttonName.performClick();


7

অ্যান্ড্রয়েডের callOnClick()( এপিআই 15 এ যুক্ত ) কখনও কখনও আমার অভিজ্ঞতার চেয়ে ভাল পছন্দ হতে পারে performClick()। যদি কোনও ব্যবহারকারীর নির্বাচনের শব্দগুলি সক্ষম থাকে, তবে performClick()ব্যবহারকারী দুটি ধ্রুবক নির্বাচনের শব্দ শুনতে পাবে যা একে অপরের উপরে কিছুটা স্তরযুক্ত রয়েছে যা জড়িত হতে পারে। (ব্যবহারকারীর প্রথম বোতাম ক্লিকের জন্য একটি নির্বাচনের শব্দ এবং তারপরে অন্য বোতামটির জন্য আরেকটি OnClickListenerযা আপনি কোডের মাধ্যমে কল করছেন))


7

এই সহজ কোডের লাইনটি লিখুন: -

button.performClick();

যেখানে বোতামটি বোতাম শ্রেণীর রেফারেন্স ভেরিয়েবল এবং নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হয়েছে: -

private Button buttonToday ;
buttonToday = (Button) findViewById(R.id.buttonToday);

এটাই.


6

এপিআই 15 দিয়ে শুরু করে, আপনি callOnClick()সরাসরি সংযুক্ত ভিউ অনক্লিকলিস্টনারকেও কল করতে পারেন । পারফরম্যান্স ক্লিক () এর বিপরীতে, এটি কেবল শ্রোতাকে কল করে এবং কোনও অ্যাক্সেসিবিলিটি ইভেন্টের প্রতিবেদন করার মতো কোনও সম্পর্কিত ক্লিক ক্রিয়া করে না।


4

আপনি যদি ব্যবহার না করেন sender যুক্তিটি না করেন তবে বোতাম হ্যান্ডলারের বাস্তবায়নকে পৃথক ফাংশন করতে কেন রিফ্যাক্টর করবেন না এবং আপনি যেখানেই চান (কল বাটন হ্যান্ডলার থেকে এবং অন্য জায়গা থেকে) ফোন করুন।

যাইহোক, এটি একটি আরও ভাল এবং ক্লিনার ডিজাইন - একটি কোড যা বোতাম হ্যান্ডলারের উপর কল করতে হবে এবং অন্য কোনও জায়গা থেকে নিজের ফাংশনে রিফ্যাক্টর পাওয়ার যোগ্য। এছাড়াও এটি আপনাকে অ্যাপ্লিকেশন লজিক কোড থেকে ইউআই হ্যান্ডলিং পৃথক করতে সহায়তা করবে। কেবলমাত্র ডেটসলেক্টড বাটনক্লিক () নয়, ফাংশনটিতে আপনার একটি সুন্দর নামও থাকবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.