2010-03-10 9 views
16

친구, 내가 각 활동에 지정 제목 표시 줄을 표시하는 코드안드로이드에서 TextView Value를 동적으로 설정하는 방법?

<?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를 사용하면 주 레이아웃에 mytitle과 같은 이름이있는 텍스트 상자가 없으므로이 텍스트 뷰에 대한 참조를 가져 오지 못합니다.

어떤 도움

은 appriciated 될 것이다.

+0

내가 HTTP를 따라 자습서 : //stackoverflow.com/questions/2251714/set-title-background-color – UMAR

답변

14

이 사용자 정의를 설정하는 방법입니다 (계층 구조 그래프에 해당 ID를 볼 수 있습니다) 볼 수있는 hierarchyviewer를 사용할 수 있습니다

+3

myTitleText는 뉴입니다. 그렇다고 주 레이아웃에 있지 않기 때문입니다. 그것은 mytitle 레이아웃입니다. r.id.somthing을 사용하면 레이아웃에서 보입니다. setContentView (R.layout.main); 제 경우에는 이 메인에 없기 때문에 다른 곳에 있습니다. 당신이 내 질문을 이해하기를 바랍니다. – UMAR

+0

먼저 테스트하고 나중에 말하십시오. 그럼, 녹색 제목은 어디에서 온 것 같니? –

+0

안녕하세요, 이것은 제목 표시 줄 배경색을 변경하지만 양쪽에 약간의 오프셋이 남아 있습니다. 그렇게 잘 보이지 않습니다. 그 문제를 해결하는데 저를 도울 수 있습니까? –

7

ActivitysetTitle() 방법을 사용해 보셨습니까? 보기에 액세스 할 수있는 경우

@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 =========="); 
} 

당신은

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

SDK를 2.1

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

이 솔루션은 흔들림! 어쨌든 최신 기능은 무작위적인 솔루션으로 숨겨져 있습니다. 감사합니다 :-) –

+0

제목이 중앙에 설정되어 있습니까? –

관련 문제