2010-08-28 9 views
28

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

लेकिन क्या होगा अगर तुम सिर्फ तुम गतिविधियों स्विच करने की आवश्यकता का फैसला? मेरे मामले में, वरीयता मूल्य गतिविधि स्विच कर रहा है।

आप एक आशय है कि एक संबद्ध OnClickListener के बिना एक गतिविधि स्विच पैदा कर सकता है कैसे बनाऊं?

+8

"क्रियाएँ", नहीं "गतिविधि के"। कृप्या। –

उत्तर

60

यह यह तुम्हारे लिए क्या करना चाहिए:

Intent myIntent = new Intent(this, MyActivityName.class); 
startActivity(myIntent); 

आप अपने वर्तमान गतिविधि में कहीं से भी है कि कह सकते हैं।

+1

क्या गतिविधि नाम को स्ट्रिंग के रूप में पास करना संभव है? – mhshams

+4

@ मोहम्मद मैंने देखा है कि किसी भी सार्वजनिक हस्ताक्षर के अनुसार नहीं, लेकिन आप क्या कर सकते हैं 'कक्षा' ऑब्जेक्ट को वापस करने के लिए 'class.forName (पूरी तरह से योग्य वर्ग का नाम) 'का उपयोग करें और फिर उस' कक्षा 'ऑब्जेक्ट को पास करें 'इरादा 'कन्स्ट्रक्टर। –

2

उपयोग PreferenceChangeListener :)

1

आप इस

Intent intent = new Intent(FirstActivity.this, second.class); 
startActivity(intent); 

की तरह मुख्य गतिविधि में intent बना सकते हैं आप दूसरे से परिणाम के लिए इंतजार कर रहे हैं, तो आप

StartActivityforresult(intent,request code) उपयोग करना चाहिए।

अनुरोध कोड किसी भी integer हो सकता है।

2

जब कभी यू गतिविधि स्विच करना चाहते हैं। आप इन कोड को कॉल कर सकते हैं।

Intent intent = new Intent(this, MyActivity.class); 
startActivity(intent); 

आप PreferenceChangeListener में इस कोड लिख सकते हैं।

+0

आपने अन्य लोगों को सही तरीके से जवाब दिया ... आपके साथ जवाब के साथ आओ। – Brian

3

मैं कम से कम संस्करण

startActivity(new Intent(CurrentActivity.this,ActivityYouWantToOpen.class)); 
5

है यह निर्भर करता है जहाँ आप कोड में नई गतिविधि शुरू करना चाहते हैं। एक नई गतिविधि शुरू करने के लिए आपको एक संदर्भ संदर्भ तक पहुंच की आवश्यकता है (उदाहरण के लिए: AsyncTask में पोस्टपोस्टएक्सक्यूट)। कृपया this पर एक नज़र डालें।

हालांकि यह मूल रूप से यह है।

Intent myIntent = new Intent(this, ActivityName.class); 
startActivity(myIntent); 

वह कुछ इस तरह के रूप में अच्छी तरह से

Intent myIntent = new Intent(context, ActivityName.class); 
context.startActivity(myIntent); 
+0

मुझे मजाकिया लगता है कि आपने वर्ग नाम 'एविटीविटीनाम' के साथ स्वीकार्य उत्तर के रूप में सटीक वही टाइपो कैसे बनाया है;) आप बस एक टिप्पणी में बता सकते हैं कि आप जानते हैं :) – AxelH

+0

@ एक्सेलहे हाँ;) मुझे इसे मर्ज करने दें, मुझे लगता है अच्छा अब, क्या तुम? –

1
startActivity (new Intent (Thisactivity.this, Nextactivity.class)); 

के लिए गतिविधि को जोड़ने के लिए मत भूलना हो सकता है आपके प्रकट

<Activity android:name=".NextActivity> 
0

सबसे पहले आप एक के लिए यूआई बनाने की जरूरत लेआउट intro_activity_1.XML फ़ाइल का उपयोग करके बटन। बाद एंड्रॉयड बटन का उपयोग करके समूह के लिए है कि सेट आईडी: आईडी = "@ + id/बटन"

उदाहरण:

intro_activity_1.xml

<Button android:id="@+id/button"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:layout_weight="1"  
android:background="@android:color/transparent"  
android:text="NEXT" /> 

अब पहली गतिविधि के अपने जावा वर्ग बदल जाते हैं। इस उदाहरण में, हम IntroActivity1 की जावा फ़ाइल बदलते हैं।जावा

उदाहरण:

IntroActivity1.java

//header, import and package data 


public class IntroActivity1 extends AppCompatActivity { 


    Button next_btn; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.intro_activity_1); 

      next_btn=(Button)findViewById(R.id.button);//button class 

      next_btn.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View arg0){ 
     //Start new activity class 
       Intent myIntent=new Intent(IntroActivity1.this,IntroActivity2.class); 
      startActivity(myIntent); 
     } 
    }); 
} 

गतिविधि परिवर्तक यात्रा के बारे में अधिक जानकारी के लिए: https://answerdone.blogspot.com/2018/01/how-to-change-new-activity-in-android.html

संबंधित मुद्दे