दिलचस्प पोस्ट
एएसपी.नेट वेबएपी में परीक्षण मार्ग कॉन्फ़िगरेशन वेबसाइट से स्वचालित रूप से प्रिंट करें जर्सी के साथ जेएक्स-आरएस का उपयोग कर कॉरस को कैसे संभालना है वर्षों में अजगर timedelta एनपीएम पैकेज को समझना @ -prefix: @ कोणीय / राउटर 'बीबॉक्स-टू-टैन्कोर' के लिए 4-तत्व ट्यूप्ले तर्क का क्या अर्थ है matplotlib? Google Chrome की अधिकतम-कनेक्शन-प्रति-सर्वर सीमा 6 से अधिक तक बढ़ाना गतिशील रूप से जोड़ें और दृश्य को देखने के लिए हटाएं इकाई फ़्रेमवर्क – इकाई से तालिका नाम प्राप्त करें फ़ॉर्मेट किए गए बिगडीकेल मान मुद्रित कैसे करें? UIWebView सामग्री को फिट करने के लिए स्केल नहीं करता मैं कैसे जांच सकता हूं कि एकाधिक चर समान मूल्य के बराबर हैं? GLUT में माउस स्क्रॉल व्हील का उपयोग करना Std :: bind के माध्यम से रैवल्यू पास करना जावा थ्रेड सृजन ओवरहेड

बटन क्लिक पर नई गतिविधि कैसे आरंभ करें

एक एंड्रॉइड एप्लिकेशन में, आप एक नई गतिविधि (जीयूआई) कैसे शुरू करते हैं जब एक अन्य गतिविधि में एक बटन क्लिक किया जाता है, और आप इन दो गतिविधियों के बीच डेटा कैसे पास करते हैं?

Solutions Collecting From Web of "बटन क्लिक पर नई गतिविधि कैसे आरंभ करें"

आसान।

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class); myIntent.putExtra("key", value); //Optional parameters CurrentActivity.this.startActivity(myIntent); 

अतिरिक्त के माध्यम से दूसरी तरफ पुनर्प्राप्त कर रहे हैं:

 @Override protected void onCreate(Bundle savedInstanceState) { Intent intent = getIntent(); String value = intent.getStringExtra("key"); //if it's a string you stored. } 

AndroidManifest.xml में अपनी नई गतिविधि जोड़ने के लिए मत भूलना:

 <activity android:label="@string/app_name" android:name="NextActivity"/> 

एक ViewPerson गतिविधि का इरादा बनाएं और PersonID को पास करें (उदाहरण के लिए, एक डेटाबेस लुकअप के लिए)

 Intent i = new Intent(getBaseContext(), ViewPerson.class); i.putExtra("PersonID", personID); startActivity(i); 

फिर ViewPerson गतिविधि में, आप अतिरिक्त डेटा का बंडल प्राप्त कर सकते हैं, सुनिश्चित करें कि यह रिक्त नहीं है (यदि आप कभी-कभी डेटा पास नहीं करते हैं), तो डेटा प्राप्त करें

 Bundle extras = getIntent().getExtras(); if(extras !=null) { personID = extras.getString("PersonID"); } 

अब अगर आपको दो गतिविधियों के बीच डेटा साझा करने की आवश्यकता है, तो आप एक ग्लोबल सिंगलटन भी कर सकते हैं।

 public class YourApplication extends Application { public SomeDataClass data = new SomeDataClass(); } 

इसके बाद इसे किसी भी गतिविधि में कॉल करें:

 YourApplication appState = ((YourApplication)this.getApplication()); appState.data.CallSomeFunctionHere(); // Do whatever you need to with data here. Could be setter/getter or some other type of logic 

जब उपयोगकर्ता बटन पर क्लिक करता है, तो सीधे उस एक्सएमएल के अंदर जैसे:

 <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextButton" android:onClick="buttonClickFunction"/> 

android:onClick की विशेषता का उपयोग करना android:onClick हम उस विधि नाम की घोषणा करते हैं, जो कि मूल गतिविधि पर मौजूद होना चाहिए। इसलिए मुझे इस पद्धति के भीतर इस पद्धति का निर्माण करना होगा जैसे:

 public void buttonClickFunction(View v) { Intent intent = new Intent(getApplicationContext(), Your_Next_Activity.class); startActivity(intent); } 

वर्तमान प्रतिक्रियाएं महान हैं लेकिन शुरुआती लोगों के लिए अधिक व्यापक जवाब आवश्यक है। एंड्रॉइड में एक नई गतिविधि शुरू करने के 3 अलग तरीके हैं, और वे सभी Intent क्लास का उपयोग करते हैं; आशय | एंड्रॉइड डेवलपर्स

  1. बटन के onClick विशेषता का उपयोग करना (प्रारंभिक)
  2. एक अज्ञात वर्ग के माध्यम से एक OnClickListener() असाइन करना (मध्यवर्ती)
  3. switch स्टेटमेंट का उपयोग करते हुए गतिविधि विस्तृत इंटरफ़ेस विधि (समर्थक)

यहां मेरे उदाहरण का लिंक है यदि आप इसके साथ पालन करना चाहते हैं: https://github.com/martinsing/ToNewActivityButtons

1. बटन के onClick विशेषता का उपयोग करना (प्रारंभिक)

बटनों में एक onClick विशेषता है जो .xml फ़ाइल में मिली है:

 <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="goToAnActivity" android:text="to an activity" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="goToAnotherActivity" android:text="to another activity" /> 

जावा वर्ग में:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); } public void goToAnActivity(View view) { Intent Intent = new Intent(this, AnActivity.class); startActivity(Intent); } public void goToAnotherActivity(View view) { Intent Intent = new Intent(this, AnotherActivity.class); startActivity(Intent); } 

लाभ: मक्खी, मॉड्यूलर को आसान बनाने के लिए, और आसानी से एक ही इरादे पर एकाधिक क्लिक आसानी से सेट कर सकते हैं।

नुकसान: समीक्षा की जाने पर मुश्किल पठनीयता

2. एक अज्ञात वर्ग के माध्यम से एक OnClickListener() असाइन करना। (मध्यवर्ती)

यह तब होता है जब आप प्रत्येक button एक अलग setOnClickListener() सेट करते हैं और प्रत्येक onClick() अपने स्वयं के इरादे से ओवरराइड करते हैं।

जावा वर्ग में:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent Intent = new Intent(view.getContext(), AnActivity.class); view.getContext().startActivity(Intent);} }); button2 = (Button) findViewById(R.id.button2); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent Intent = new Intent(view.getContext(), AnotherActivity.class); view.getContext().startActivity(Intent);} }); 

लाभ: उड़ान भरने के लिए आसान।

नुकसान: समीक्षा के दौरान बहुत से गुमनाम कक्षाएं जो पढ़ने योग्यता बनाएंगी।

3. switch कथन का उपयोग करते हुए गतिविधि विस्तृत इंटरफ़ेस विधि (समर्थक)

यह तब होता है जब आप अपने बटन के लिए सभी गतिविधि के बटनों को प्रबंधित करने के लिए onClick() विधि के भीतर एक switch स्टेटमेंट का उपयोग करते हैं

जावा वर्ग में:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); button1 = (Button) findViewById(R.id.button1); button2 = (Button) findViewById(R.id.button2); button1.setOnClickListener(this); button2.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.button1: Intent intent1 = new Intent(this, AnActivity.class); startActivity(intent1); break; case R.id.button2: Intent intent2 = new Intent(this, AnotherActivity.class); startActivity(intent2); break; default: break; } 

लाभ: आसान बटन प्रबंधन क्योंकि सभी बटन इन्टेंट एकल onClick() विधि में पंजीकृत हैं


प्रश्न के दूसरे भाग के लिए, डेटा पास करना, कृपया देखें कि मैं एंड्रॉइड एप्लिकेशन में क्रियाकलापों के बीच डेटा कैसे दूं?

 Intent iinent= new Intent(Homeactivity.this,secondactivity.class); startActivity(iinent); 
  Intent in = new Intent(getApplicationContext(),SecondaryScreen.class); startActivity(in); This is an explicit intent to start secondscreen activity. 

इम्मानुएल,

मुझे लगता है कि गतिविधि को शुरू करने से पहले अतिरिक्त जानकारी डालनी चाहिए अन्यथा डेटा उपलब्ध नहीं होगा यदि आप इसे NextActivity के onCreate विधि में एक्सेस कर रहे हैं

 Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class); myIntent.putExtra("key", value); CurrentActivity.this.startActivity(myIntent); 

प्रेषण गतिविधि से निम्नलिखित कोड को आज़माएं

  //EXTRA_MESSAGE is our key and it's value is 'packagename.MESSAGE' public static final String EXTRA_MESSAGE = "packageName.MESSAGE"; @Override protected void onCreate(Bundle savedInstanceState) { .... //Here we declare our send button Button sendButton = (Button) findViewById(R.id.send_button); sendButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //declare our intent object which takes two parameters, the context and the new activity name // the name of the receiving activity is declared in the Intent Constructor Intent intent = new Intent(getApplicationContext(), NameOfReceivingActivity.class); String sendMessage = "hello world" //put the text inside the intent and send it to another Activity intent.putExtra(EXTRA_MESSAGE, sendMessage); //start the activity startActivity(intent); } 

प्राप्त गतिविधि से निम्नलिखित कोड का प्रयास करें:

  protected void onCreate(Bundle savedInstanceState) { //use the getIntent()method to receive the data from another activity Intent intent = getIntent(); //extract the string, with the getStringExtra method String message = intent.getStringExtra(NewActivityName.EXTRA_MESSAGE); 

फिर बस एंड्रॉइड मैनिफ़ेस्ट.एक्सएमएल फ़ाइल में निम्नलिखित कोड जोड़ें

  android:name="packagename.NameOfTheReceivingActivity" android:label="Title of the Activity" android:parentActivityName="packagename.NameOfSendingActivity" 
 Intent i = new Intent(firstactivity.this, secondactivity.class); startActivity(i); 

नई गतिविधियों को शुरू करने का तरीका एक इरादा प्रसारित करना है, और एक विशिष्ट प्रकार का इरादा है जिसमें आप डेटा को एक गतिविधि से दूसरे पास करने के लिए उपयोग कर सकते हैं मेरी सिफारिश यह है कि आप इंटेंट्स से जुड़े एंड्रॉइड डेवलपर डॉक्स की जांच करें; यह विषय पर जानकारी का धन है, और इसके उदाहरण भी हैं।

आप इस कोड की कोशिश कर सकते हैं:

 Intent myIntent = new Intent(); FirstActivity.this.SecondActivity(myIntent); 

इस सरल विधि का प्रयास करें

 startActivity(new Intent(MainActivity.this, SecondActivity.class)); 

एंड्रॉइड एप्लिकेशन डेवलपमेंट में किसी अन्य गतिविधि से एक गतिविधि शुरू करना बहुत सामान्य है। एक गतिविधि शुरू करने के लिए आपको एक Intent वस्तु की आवश्यकता है।

एक आशय वस्तु उसके निर्माता में दो पैरामीटर लेती है

  1. प्रसंग
  2. शुरू करने की गतिविधि का नाम

उदाहरण के लिए, यदि आपके पास दो गतिविधियां हैं, तो HomeActivity और DetailActivity और आप HomeActivity (होमएक्टिवटी -> डिब्ब्यूट ऍक्टिविटी) से HomeActivity DetailActivity शुरू करना चाहते हैं

यहां कोड स्निपेट है जो दिखाता है कि कैसे होमएक्टिविटी से विस्तार की गतिविधि शुरू करें।

 Intent i = new Intent(HomeActivity.this,DetailActivity.class); startActivity(i); 

और तुम हो

वापस बटन क्लिक करने के लिए भाग आ रहा है

 Button button = (Button) findViewById(R.id.someid); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent i = new Intent(HomeActivity.this,DetailActivity.class); startActivity(i); } }); 

View.OnClickListener इंटरफ़ेस को लागू करें और onClick विधि को ओवरराइड करें।

 ImageView btnSearch; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search1); ImageView btnSearch = (ImageView) findViewById(R.id.btnSearch); btnSearch.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnSearch: { Intent intent = new Intent(Search.this,SearchFeedActivity.class); startActivity(intent); break; } 

इस गतिविधि से एक अन्य गतिविधि को प्रारंभ करें और आप बंडल ऑब्जेक्ट के माध्यम से पैरामीटर भी पा सकते हैं।

 Intent intent = new Intent(getBaseContext(), YourActivity.class); intent.putExtra("USER_NAME", "xyz@gmail.com"); startActivity(intent); 

किसी अन्य गतिविधि में डेटा को पीछे हटाना (आपकी गतिविधि)

 String s = getIntent().getStringExtra("USER_NAME"); 

यद्यपि उचित उत्तर पहले से ही उपलब्ध कराए गए हैं लेकिन मैं भाषा Kotlin से उत्तर में खोज के लिए यहां हूं। यह प्रश्न भाषा के बारे में विशिष्ट नहीं है इसलिए मैं कोटलिन भाषा में इस कार्य को पूरा करने के लिए कोड जोड़ रहा हूं।

यहां बताया गया है कि आप इसे एंड्रॉइड के लिए कोटलिन में कैसे करते हैं

 testActivityBtn1.setOnClickListener{ val intent = Intent(applicationContext,MainActivity::class.java) startActivity(intent) }