উত্তর:
সহজ।
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.
}
আপনার নতুন ক্রিয়াকলাপটি AndroidManLive.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
ক্লাস ব্যবহার করে ; অভিপ্রায় | অ্যান্ড্রয়েড বিকাশকারীরা ।
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()
পদ্ধতিতে নিবন্ধিত
প্রশ্নের দ্বিতীয় অংশের জন্য, ডেটা পাস করার জন্য, দয়া করে দেখুন কীভাবে আমি অ্যান্ড্রয়েড অ্যাপ্লিকেশনটিতে ক্রিয়াকলাপগুলির মধ্যে ডেটা পাস করব?
যখন ব্যবহারকারী বোতামে ক্লিক করেন, সরাসরি এক্সএমএলের ভিতরে:
<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.
এমানুয়েল,
আমি মনে করি ক্রিয়াকলাপ শুরু করার আগে অতিরিক্ত তথ্য দেওয়া উচিত অন্যথায় আপনি যদি নেক্সটএটিভিটির অনক্রিট পদ্ধতিতে অ্যাক্সেস করে থাকেন তবে ডেটা উপলব্ধ হবে না।
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);
তারপরে কেবলমাত্র AndroidManLive.xML ফাইলটিতে নিম্নলিখিত কোডটি যুক্ত করুন
android:name="packagename.NameOfTheReceivingActivity"
android:label="Title of the Activity"
android:parentActivityName="packagename.NameOfSendingActivity"
নতুন ক্রিয়াকলাপ শুরু করার উপায়টি হ'ল একটি উদ্দেশ্য সম্প্রচার করা এবং একটি নির্দিষ্ট ধরণের অভিপ্রায় রয়েছে যা আপনি এক ক্রিয়াকলাপ থেকে অন্য কার্যকলাপে ডেটা প্রেরণে ব্যবহার করতে পারেন। আমার সুপারিশ আপনি এর সাথে সম্পর্কিত 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"))
অন্য ক্রিয়াকলাপ থেকে কোনও ক্রিয়াকলাপ শুরু করা অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির মধ্যে খুব সাধারণ দৃশ্য।
কোনও ক্রিয়াকলাপ শুরু করতে আপনার একটি ইনটেন্ট অবজেক্টের প্রয়োজন ।
একটি ইন্টেন্ট অবজেক্ট তার কনস্ট্রাক্টরে দুটি পরামিতি নেয়
উদাহরণ:
সুতরাং উদাহরণস্বরূপ, যদি আপনি দুই কার্যকলাপ নেই বলে 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);
অন্য ক্রিয়ায় ডেটা পুনরুদ্ধার করুন (আপনার ক্রিয়াকলাপ)
String s = getIntent().getStringExtra("USER_NAME");
View.OnClickListener ইন্টারফেস প্রয়োগ করুন এবং অনক্লিক পদ্ধতিতে ওভাররাইড করুন।
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);
}
}
AndroidManLive.xml (কেবলমাত্র কোডের এই ব্লকটি বিদ্যমানটিতে যুক্ত করুন)
</activity>
<activity android:name=".SecondActivity">
</activity>
প্রথমে এক্সএমএলে বোতামটি নিন।
<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);
}
});