2010-03-10 12 views
16

दोस्तों,एंड्रॉइड में कस्टम टाइटल बार टेक्स्टव्यू वैल्यू गतिशील रूप से कैसे सेट करें?

मैं कस्टम शीर्षक पट्टी बनाया है कोड

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/myTitle" 
    android:text="This is my new title" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:textColor="@color/titletextcolor" 
    android:layout_marginLeft="25px" 
    android:paddingTop="3px" 
    /> 

और जावा कोड के साथ निम्न titlebar.xml फ़ाइल का उपयोग कर प्रत्येक गतिविधि पर कस्टम शीर्षक पट्टी प्रदर्शित करने के लिए।

@Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
     getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle); 

super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 


} 

अब मैं प्रत्येक गतिविधि में गतिशील TextView मान सेट करने के किसी भी एक मुझे मार्गदर्शन कर सकते हैं मैं यह कैसे प्राप्त कर सकते हैं करना चाहते हैं?

findviewbyid का उपयोग करके मुझे मूल्य निर्धारित करने के लिए उस टेक्स्टव्यू का संदर्भ नहीं मिलता है क्योंकि मुख्य लेआउट में ऐसे नाम के साथ कोई टेक्स्टबॉक्स नहीं है लेकिन मेरा शीर्षक।

किसी भी मदद की सराहना की जाएगी।

+0

ट्यूटोरियल मैं पीछा किया http: //stackoverflow.com/questions/2251714/set-title-background-color – UMAR

उत्तर

14

यह कस्टम स्थापित करने के लिए तरीका है देखने के लिए:

+3

myTitleText nu है क्योंकि यह मुख्य लेआउट प्रिय में नहीं है। यह मेरा शीर्षक लेआउट है। जब हम r.id.somthing का उपयोग करते हैं तो यह लेआउट सेटकंटेंट व्यू (R.layout.main) में लिखा गया है; मेरे मामले में यह मुख्य नहीं है यह कहीं और है। आशा है कि आप मेरे प्रश्न को समझ लेंगे। – UMAR

+0

पहले परीक्षण करें, बाद में बात करें। तो, आपको लगता है कि हरा शीर्षक कहां से आया है? –

+0

हाय, यह टाइटल बार पृष्ठभूमि रंग बदल रहा है लेकिन मुझे दोनों तरफ कुछ ऑफ़सेट छोड़ा गया है। यह उस तरह से अच्छा नहीं लग रहा है। क्या आप कृपया उस समस्या को हल करने में मेरी मदद कर सकते हैं? –

7

क्या आपने Activity की setTitle() विधि की कोशिश की है?

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);   
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
    setContentView(R.layout.main); 
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle); 
    TextView mytitletext = (TextView) findViewById(R.id.myTitle); 
    mytitletext.setText("========= NEW TITLE =========="); 
} 

यदि आपके विचार पहुँचा जा सकता है hierarchyviewer उपयोग कर सकते हैं (आप पदानुक्रम ग्राफ में अपनी आईडी देखेंगे)

0

निम्नलिखित का प्रयास करें शीर्षक:

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

    final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 

    setContentView(R.layout.main); 

    if (customTitleSupported) { 
     getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle); 
    } 

    final TextView myTitleText = (TextView) findViewById(R.id.myTitle); 
    if (myTitleText != null) { 
     myTitleText.setText("========= NEW TITLE =========="); 
     myTitleText.setBackgroundColor(Color.GREEN); 
    } 


} 
1

my_title.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout android:id="@+id/header" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" android:layout_width="fill_parent" 
    android:background="#d4e9a9"> 

    <ImageView android:src="@drawable/jetpack" 
     android:layout_width="wrap_content" android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" android:id="@+id/back" 
     android:layout_height="wrap_content" android:layout_alignParentTop="true" /> 

    <TextView android:id="@+id/title" android:layout_width="wrap_content" 
     android:gravity="center_vertical" android:textSize="20px" 
     android:textColor="#ffffff" android:layout_alignParentRight="true" 
     android:text="New Title" android:background="#a5c639" 
     android:layout_height="wrap_content" android:layout_alignParentTop="true" 
     android:padding="9dip" android:layout_margin="5dip" /> 
</RelativeLayout> 

कोड:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  
setContentView(R.layout.main); 
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_title);  

((TextView)findViewById(R.id.title)).setText("gradient shadow"); 

findViewById(R.id.back).setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     ((TextView)findViewById(R.id.title)).setText("loce"); 
    } 
}); 

क्योंकि कस्टम शीर्षक डिफ़ॉल्ट तय हो गई है आप अपने आप को एक विषय लिखना चाहिए:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/MyTheme"> 
14

एसडीके 2.1+

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);   
    setContentView(R.layout.main); 
    setTitle("========= NEW TITLE =========="); 
} 
+0

यह समाधान चट्टानों! किसी भी तरह नवीनतम सुविधाओं को यादृच्छिक समाधान के ढेर के नीचे छुपाया जाता है। धन्यवाद :-) –

+0

क्या यह केंद्र पर शीर्षक सेट करता है? –

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