जब मैं यहां खोज करता हूं तो बहुत सारे लेआउट प्रश्न होते हैं, लेकिन मुझे इसे संबोधित करने के लिए कुछ नहीं मिल रहा है - और संभवतः इसलिए कि मैं इसके बारे में गलत तरीके से जा रहा हूं, या शायद गलत शब्दों का उपयोग करके यह वर्णन करने के लिए कि मैं क्या हासिल करने की कोशिश कर रहा हूं . अगर इसका उत्तर कहीं और दिया गया है तो मैं पहले से क्षमा चाहता हूं, लेकिन कुछ पॉइंटर्स की सराहना करता हूं।
मैं जो करना चाहता हूं वह एक लॉगिन कार्य के लिए एक स्क्रीन है, फिर एक बार लॉग इन करने के बाद मैं कुछ अन्य सामान करने के लिए दूसरी स्क्रीन पर जाता हूं (और इस स्क्रीन का एक बिल्कुल अलग लेआउट होगा)।
मेरे पास सवाल यह है: क्या मेरे पास दो अलग-अलग लेआउट हो सकते हैं (यानी: main.xml और login.xml), और कोड में मैं कहां हूं, इस पर निर्भर करते हुए, बस उन्हें बदल दें? और अगर ऐसा है तो कैसे?
मैंने कोड में setContentView(R.layout.login);
जोड़ने का प्रयास किया था, लेकिन ऐसा लगता है कि आप अंतिम एक सेट को चुनें और इसके साथ चिपके रहें, भले ही आप कोड में कहीं भी हों। मैंने लॉगिन भाग को दूसरे वर्ग में तोड़ने की भी कोशिश की, फिर इसे कॉल करने के लिए startActivity(new Intent(this, Login.class));
का उपयोग करें, लेकिन यह लगभग मुख्य ऐप के समानांतर चलता है, क्योंकि मुख्य ऐप में चीजें लॉगिन पूरा होने से पहले भी चलती रहती हैं।
यानी: मुख्य गतिविधि में:
startActivity(new Intent(this, Login.class));
Toast.makeText(this, "This is main", Toast.LENGTH_LONG).show();
तब मुझे लॉगिन स्क्रीन पॉप अप मिलती है, इसके ऊपर टोस्ट संदेश पॉप अप होता है - और मुख्य गतिविधि सिर्फ लॉगिन गतिविधि में जो कुछ भी करती है उसके बावजूद चलती है। लॉगिन गतिविधि या तो समाप्त नहीं होती है - क्या मुझे इसे मारने की ज़रूरत है, या उस पर एक System.exit() करना है?
मैं उम्मीद कर रहा हूं कि यह कुछ आसान है मैं गलत कर रहा हूं, मैं विभिन्न वेबसाइटों और मेरे पास दो पाठ्यपुस्तकों से विचारों को दूर करने की कोशिश कर रहा हूं, लेकिन कुछ भी काम नहीं कर रहा है।
किसी भी मदद या विचारों की बहुत सराहना की जाएगी
3 जवाब
ऐसा करने का सही तरीका यह है कि दो गतिविधियाँ MainActivity
और LoginActivity
हों, जिनमें से प्रत्येक का अपना लेआउट हो। यदि आप उस दृष्टिकोण को नहीं अपनाते हैं तो आप बैक-बटन नरक में आ जाएंगे।
(पुन: "लॉगिन पूरा होने से पहले भी मुख्य ऐप में चीजें चलती रहीं" आपको यह समझाने के लिए और विवरण जोड़ने की आवश्यकता होगी कि आप क्या देख रहे थे, यह मुझे सही नहीं लगता।)
मुझे लगता है कि आप जो करना चाहते हैं वह एक नई स्क्रीन लॉन्च करना है जब कोई उपयोगकर्ता ठीक से लॉग इन करता है। जब उपयोगकर्ता ठीक से लॉग इन हो तो बस एक नई गतिविधि शुरू करें। निम्नलिखित से सहायता लें:
Intent i = new Intent(this,Login.class);
startActivityForResult(i, 1);
यदि आप मुख्य गतिविधि में वापस कुछ क्रिया करना चाहते हैं तो परिणाम प्राप्त करने के लिए फिर से MainActivity में onActivityResult() विधि का उपयोग करें।
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1){
Toast.makeText(this, "Pass", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(this, "Fail", Toast.LENGTH_LONG).show();
}
}
ये कोशिश करें।
आपके पास कई विकल्प हैं।
शायद बेहतर विकल्प दो अलग-अलग गतिविधियों का उपयोग करना है। जब आप दूसरी (मुख्य गतिविधि) शुरू करते हैं, तो पहले वाले (लॉगिन गतिविधि) में activity.finish()
पर कॉल करें।
startActivity(new Intent(this, Login.class));
लाइन के बाद करने का प्रयास करें (आप बस finish()
को कॉल कर सकते हैं क्योंकि आप पहले से ही गतिविधि में हैं।
संबंधित सवाल
नए सवाल
android
एंड्रॉइड Google का मोबाइल ऑपरेटिंग सिस्टम है, जिसका उपयोग प्रोग्रामिंग या डिजिटल डिवाइस (स्मार्टफोन, टैबलेट, ऑटोमोबाइल्स, टीवी, वियर, ग्लास, IoT) को विकसित करने के लिए किया जाता है। एंड्रॉइड से संबंधित विषयों के लिए, एंड्रॉइड-विशिष्ट टैग जैसे कि एंड्रॉइड-इरादे, एंड्रॉइड-गतिविधि, एंड्रॉइड-एडॉप्टर आदि का उपयोग करें। विकास या प्रोग्रामिंग के अलावा अन्य प्रश्नों के लिए, लेकिन एंड्रॉइड फ्रेमवर्क से संबंधित हैं, इस लिंक का उपयोग करें: https: // android.stackexchange.com।
onStop
को ओवरराइड करते हैं तो आपकी गतिविधि रिकॉर्ड कर सकती है कि यह अब उपयोगकर्ता को दिखाई नहीं देती है और अनुचित टोस्ट नहीं बनाती है। developer.android.com/reference/android/app/…onStart()
में इसे गलत के रूप में सेट करना न भूलें