जवाबों:
आसान।
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"/>
CurrentActivity.this.startActivity(myIntent)
और startActivity(myIntent)
?
व्यूपर्सन गतिविधि के लिए एक इरादा बनाएं और व्यक्ति को (डेटाबेस लुकअप के लिए, उदाहरण के लिए) पास करें।
Intent i = new Intent(getBaseContext(), ViewPerson.class);
i.putExtra("PersonID", personID);
startActivity(i);
फिर व्यूपर्सन गतिविधि में, आप अतिरिक्त डेटा का बंडल प्राप्त कर सकते हैं, सुनिश्चित करें कि यह शून्य नहीं है (यदि आप कभी-कभी डेटा पास नहीं करते हैं), तो डेटा प्राप्त करें।
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
वर्तमान प्रतिक्रियाएं महान हैं लेकिन शुरुआती लोगों के लिए अधिक व्यापक जवाब की आवश्यकता है। एंड्रॉइड में एक नई गतिविधि शुरू करने के लिए 3 अलग-अलग तरीके हैं, और वे सभी Intent
वर्ग का उपयोग करते हैं ; आशय | Android डेवलपर्स ।
onClick
बटन विशेषता का । (प्रारंभिक)OnClickListener()
एक अनाम वर्ग के माध्यम से । (मध्यवर्ती)switch
कथन का उपयोग करते हुए गतिविधि विस्तृत इंटरफ़ेस विधि । (समर्थक)यहाँ लिंक हैयदि आप साथ चलना चाहते हैं तो मेरे उदाहरण दिया गया है:
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);
}
फायदा : मक्खी, मॉड्यूलर पर बनाना आसान है, और आसानी onClick
से एक ही इरादे से कई सेट कर सकते हैं ।
नुकसान : समीक्षा करते समय कठिन पठनीयता।
OnClickListener()
एक अनाम वर्ग के माध्यम से असाइन करना । (मध्यवर्ती)यह तब होता है जब आप setOnClickListener()
प्रत्येक को एक अलग सेट करते हैं button
और प्रत्येक onClick()
को अपनी मर्जी से ओवरराइड करते हैं ।
जावा वर्ग में:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
Button 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);}
});
Button 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);}
});
फायदा : मक्खी पर बनाना आसान है।
नुकसान : बहुत सारी अनाम कक्षाएं होंगी, जिनकी समीक्षा करते समय पठनीयता मुश्किल हो जाएगी।
switch
कथन का उपयोग करते हुए गतिविधि विस्तृत इंटरफ़ेस विधि । (समर्थक)यह तब होता है जब आप switch
अपने बटनों के लिए स्टेटमेंट का उपयोग करते हैंonClick()
सभी गतिविधि के बटन को प्रबंधित करने के विधि के हैं।
जावा वर्ग में:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
Button button1 = (Button) findViewById(R.id.button1);
Button 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()
विधि में पंजीकृत हैं
प्रश्न के दूसरे भाग के लिए, डेटा पास करना, कृपया देखें कि मैं एंड्रॉइड एप्लिकेशन में गतिविधियों के बीच डेटा कैसे पास करूं?
जब उपयोगकर्ता बटन पर क्लिक करता है, तो सीधे XML के अंदर
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextButton"
android:onClick="buttonClickFunction"/>
विशेषता का उपयोग करके android:onClick
हम उस विधि नाम की घोषणा करते हैं जिसे मूल गतिविधि पर उपस्थित होना है। तो मुझे इस तरह से अपनी गतिविधि के अंदर यह विधि बनानी होगी:
public void buttonClickFunction(View v)
{
Intent intent = new Intent(getApplicationContext(), Your_Next_Activity.class);
startActivity(intent);
}
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 की ऑनक्रिट विधि में एक्सेस कर रहे हैं।
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);
फिर बस AndroidManifest.xml फ़ाइल में निम्न कोड जोड़ें
android:name="packagename.NameOfTheReceivingActivity"
android:label="Title of the Activity"
android:parentActivityName="packagename.NameOfSendingActivity"
इस सरल विधि का प्रयास करें।
startActivity(new Intent(MainActivity.this, SecondActivity.class));
नई गतिविधियों को शुरू करने का तरीका एक इरादे को प्रसारित करना है, और एक विशिष्ट प्रकार का इरादा है जिसका उपयोग आप डेटा को एक गतिविधि से दूसरी गतिविधि में पारित करने के लिए कर सकते हैं। मेरे सिफारिश है कि आप से संबंधित Android डेवलपर डॉक्स की जाँच है उद्देश्य ; यह विषय पर जानकारी का खजाना है, और इसके उदाहरण भी हैं।
पहली गतिविधि
startActivity(Intent(this, SecondActivity::class.java)
.putExtra("key", "value"))
दूसरी गतिविधि
val value = getIntent().getStringExtra("key")
सुझाव
हमेशा अधिक प्रबंधित तरीके से निरंतर फ़ाइल में कुंजियाँ रखें।
companion object {
val PUT_EXTRA_USER = "user"
}
startActivity(Intent(this, SecondActivity::class.java)
.putExtra(PUT_EXTRA_USER, "value"))
किसी अन्य गतिविधि से गतिविधि शुरू करना Android अनुप्रयोगों के बीच बहुत ही सामान्य परिदृश्य है।
एक गतिविधि शुरू करने के लिए आपको एक आशय वस्तु की आवश्यकता होती है।
एक आशय वस्तु अपने निर्माता में दो पैरामीटर लेती है
उदाहरण:
उदाहरण के लिए, यदि आपके पास दो गतिविधियाँ हैं, तो कहना HomeActivity
औरDetailActivity
और आप शुरू करना चाहते DetailActivity
से HomeActivity
(HomeActivity -> DetailActivity)।
यहां कोड स्निपेट दिया गया है, जिसमें दिखाया गया है कि डिटेलएक्टिविटी कैसे शुरू करें
HomeActivity।
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);
}
});
इस गतिविधि से एक और गतिविधि शुरू करें और यू बंडल ऑब्जेक्ट के माध्यम से पैरामीटर भी पास कर सकते हैं।
Intent intent = new Intent(getBaseContext(), YourActivity.class);
intent.putExtra("USER_NAME", "xyz@gmail.com");
startActivity(intent);
किसी अन्य गतिविधि (YourActivity) में डेटा पुनर्प्राप्त करें
String s = getIntent().getStringExtra("USER_NAME");
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;
}
हालाँकि उचित उत्तर पहले ही दिए जा चुके हैं लेकिन मैं यहाँ भाषा कोटलीन में उत्तर की खोज के लिए हूँ। यह प्रश्न भाषा विशेष के बारे में नहीं है इसलिए मैं कोटलिन भाषा में इस कार्य को पूरा करने के लिए कोड जोड़ रहा हूं।
यहाँ है कि आप कैसे कोलिन के लिए यह करते हैं
testActivityBtn1.setOnClickListener{
val intent = Intent(applicationContext,MainActivity::class.java)
startActivity(intent)
}
बटन क्लिक पर गतिविधि खोलने का सबसे सरल तरीका है:
onclick
कार्य करने के लिए एक नाम दें । MainActivity.java
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.content.Intent;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goToAnotherActivity(View view) {
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
}
SecondActivity.java
package com.example.myapplication;
import android.app.Activity;
import android.os.Bundle;
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
}
}
AndroidManifest.xml (मौजूदा में कोड के इस ब्लॉक को जोड़ें)
</activity>
<activity android:name=".SecondActivity">
</activity>
पहले xml में बटन लें।
<Button
android:id="@+id/pre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_launcher"
android:text="Your Text"
/>
बटन की सूची बनाओ।
pre.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
});
जब बटन क्लिक किया जाता है:
loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent= new Intent(getApplicationContext(), NextActivity.class);
intent.putExtra("data", value); //pass data
startActivity(intent);
}
});
से अतिरिक्त डेटा प्राप्त करने के लिए NextActivity.class
:
Bundle extra = getIntent().getExtras();
if (extra != null){
String str = (String) extra.get("data"); // get a object
}
अपनी पहली गतिविधि में कोड लिखें।
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SecondAcitvity.class);
//You can use String ,arraylist ,integer ,float and all data type.
intent.putExtra("Key","value");
startActivity(intent);
finish();
}
});
सेकंडअक्टिविटी.क्लास में
String name = getIntent().getStringExtra("Key");
नीचे की तरह xml में बटन विजेट रखें
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
/>
उसके बाद प्रारंभ और नीचे की तरह गतिविधि में क्लिक श्रोता पर हैंडल ।।
गतिविधि में बनाएँ विधि पर:
Button button =(Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new
Intent(CurrentActivity.this,DesiredActivity.class);
startActivity(intent);
}
});