2011-03-22 10 views
19

मैंने एप्लिकेशन के लिए मैनिफेस्ट की समीक्षा की है, और ऐप लॉन्चर के तहत यह ऐप नाम के बजाए गतिविधि नाम के रूप में प्रदर्शित होता है? ऐसा क्यों है। मेरे पास एक और एप्लीकेशन है, जहां मैं इसे इंस्टॉल करता हूं, एप्लिकेशन में प्रत्येक गतिविधि के लिए 5 प्रविष्टियां होती हैं, जब ऐप का केवल एक नाम होना चाहिए? तो जब मैं लॉन्च करने जाता हूं तो इसमें लॉन्च सूची में 5 समान नामित ऐप्स होते हैं। इन्हें ऐप के नाम पर रखा गया है लेकिन प्रत्येक गतिविधि के लिए एक है। इसका क्या कारण रह सकता है?एंड्रॉइड एप्लिकेशन का नाम गतिविधि नाम के रूप में दिखाई देता है

+0

यह अजीब लगता है। मेरा मतलब है कि एंड्रॉइड को ऐप लॉन्च सूची में एक ही नाम के साथ कई ऐप्स को क्यों दिखाना चाहिए? – Androider

+1

कृपया अपनी मेनिफेस्ट सामग्री पेस्ट करें। – tvkanters

+0

इनमें से एक मुद्दा यह है कि एक ही नाम वाले एकाधिक ऐप्स के लिए बहुत अधिक लॉचर श्रेणी गतिविधियां हैं। – Androider

उत्तर

12

प्रथम अंक के लिए, आप जानते हैं कि नाम आवेदन टैग पर android:label विशेषता से आता है होना चाहिए:

<application android:name="ApiDemosApplication" 
    android:label="@string/activity_sample_code" 
    android:icon="@drawable/app_sample_code"> 

दूसरे अंक के लिए, प्रकट में, यह संभव है कि आपके सभी गतिविधियों को निर्दिष्ट है android.intent.category.LAUNCHER की कार्रवाई के साथ एक इरादा फ़िल्टर। उदाहरण के लिए:

<activity android:name="ApiDemos"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

आप सभी गतिविधियों पर इस तरह के इरादे फिल्टर टैग नहीं है, तो आप सब पर आमादा फिल्टर टैग लेकिन गतिविधि कि आप प्रारंभ होने पर लॉन्च करना चाहते हैं बाहर ले जाना चाहिए।

+1

ठीक है। तो लेबल के बिना यह एक मुख्य गतिविधि के लिए नाम उठाएगा। – Androider

+0

अभी भी प्रतीत होता है जैसे लॉन्चर्स प्रविष्टियां ऐप के लिए होनी चाहिए और गतिविधियों पर आधारित नहीं है, लेकिन यह समस्या – Androider

+1

वास्तविक है मेरे ऊपर ऊपर दिए गए मैनिफेस्ट में एंड्रॉइड लेबल है ?? – Androider

2

जब आप ग्रहण के माध्यम से गतिविधि बनाते हैं, तो संपत्ति एंड्रॉइड: आपकी गतिविधि के अंदर लेबल स्वचालित रूप से AndroidManifest.xml में "@ string/your_activity_name" पर सेट हो जाता है। इस गतिविधि के लिए लॉन्चर प्रदान करने के लिए इरादा फ़िल्टर जोड़ना, आपके लॉन्चर को आपके क्रियाकलाप एंड्रॉइड: लेबल के समान लेबल मिलता है।

यदि आप लॉन्चर को अपने एप्लिकेशन नाम से लेबल करना चाहते हैं, तो आपको क्रियाकलाप एंड्रॉइड: लेबल को "@ string/app_name" जैसे कुछ में बदलना चाहिए।

36

उपर्युक्त स्वीकृत उत्तर गलत है। इसमें कहा गया है,

नाम एंड्रॉयड से आता है: आवेदन टैग

सच नहीं है कि पर लेबल विशेषता। उदाहरण के लिए निम्नलिखित कोड लें।

<activity android:name="ApiDemos" android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

इस कोड में, एप्लिकेशन नाम है कि लांचर में पता चलता activity टैग में android:label विशेषता के आधार पर सेट किया गया है नहीं application टैग के रूप में स्वीकार कर लिया ऊपर जवाब कहते हैं।

ऊपर स्वीकार किए जाते हैं प्रतिक्रिया सुधारने के लिए, नाम लॉन्चर में आइकन के अंतर्गत दिखाए प्रवेश बिंदु गतिविधि के activity टैग (गतिविधि टैग कि DEFAULT और LAUNCHER श्रेणियां शामिल हैं) में android:label विशेषता से आता है, जब तक आप निर्दिष्ट नहीं करते यह टैग पर android:label विशेषता से आता है।

आपकी पहली समस्या को आपके प्रविष्टि बिंदु गतिविधि के टैग में android:label विशेषता बदलकर हल किया जा सकता है।

+3

क्या एक अजीब व्यवहार है। गतिविधि के लिए गतिविधि नाम और लॉन्चर के लिए ऐप नाम का उपयोग करने के लिए यह अधिक तार्किक प्रतीत होता है। क्या आप इसमें काम करते हैं कि यह कैसे काम करता है? –

+2

यह ऐप देवों में एक से अधिक लॉन्चर आइकन (और संबंधित प्रविष्टि बिंदु गतिविधि) हो सकते हैं और प्रत्येक लॉन्चर आइकन के लिए अलग-अलग नाम होने में सक्षम हैं। आप मेनिफेस्ट में एक से अधिक गतिविधि टैग में निम्न कोड को शामिल करके ऐसा कर सकते हैं: ' <श्रेणी एंड्रॉइड: नाम = "android.intent.category.LAUNCHER" /> ' और प्रत्येक गतिविधि टैग में' android: label = "@ string/app_name" 'जोड़ना। – Patrick

+2

@ पैट्रिक तो मैं एप्लिकेशन नाम से अलग प्रविष्टि गतिविधि के लिए लेबल कैसे रख सकता हूं? अगर मैं केवल एक मुख्य गतिविधि के लिए तैयार हूं? –

5

एक अलग एप्लिकेशन नाम (ऐप आइकन के नीचे दिखाई देने वाला नाम) का एक तरीका और ऐप आइकन पर टैप करते समय लॉन्च होने वाली गतिविधि के लिए एक अलग नाम स्पष्ट रूप से गतिविधि में एक अलग स्ट्रिंग सेट करना है ऑनक्रेट() विधि, इस तरह:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Do your thing 
    // ... bla bla bla 

    getActionBar().setTitle(R.string.activity_title); 
} 

आशा है कि इससे मदद मिलती है!

+1

यह सही जवाब है। –

0

Android संस्करण चल रहा है 4.1.2 आवेदन के नाम पर "स्थिर" हो जाएगा लेबल मुख्य लांचर के रूप में स्थापित है और किसी भी मंशा फिल्टर

0

आप रखना चाहते हैं के रूप में अगर में ओवरराइड नहीं गतिविधि में परिभाषित के संबंध में टूलबार शीर्षक के स्थान पर एक छवि दृश्य। आपको एंड्रॉइड मेनिफेस्ट में android:label=""; के रूप में विशेष गतिविधि के लेबल को अपडेट करना होगा, यह करके कि आपका गतिविधि नाम छवि दृश्य के बाद टूलबार में प्रदर्शित नहीं होगा और कृपया नेविगेशन आइकन के साथ छवि दृश्य सेट करने के लिए निम्न कोड का उपयोग करें और कोई टूलबार नहीं शीर्षक।

try { 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    toolbar.setTitle(""); 
    if (getSupportActionBar() != null) 
     getSupportActionBar().setIcon(R.drawable.header_image_wt); 
} catch (Exception e) { 
    e.getMessage(); 
} 
संबंधित मुद्दे