2012-05-22 4 views
0

완벽하게 표시되는 간단한 맞춤 제목을 만들었습니다. 그러나 setTitle 메서드가 마법을 작동 시키려면 내 TextView에 어떤 ID를 부여해야할지 모르겠습니다.Android의 맞춤 제목 및 세트 제목

첫 번째 선택은 @android : id/title 이었지만 작동하지 않았습니다.

예 xml에 맞춤 제목 레이아웃을 정의하고이를 내 활동에 추가했습니다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/custom_title" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@android:color/transparent" > 

    <ImageView 
     android:id="@+id/logo" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="5dp" 
     android:scaleType="centerInside" 
     android:onClick="home" 
     android:src="@drawable/logo" /> 

    <TextView 
     android:id="@android:id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:textSize="18dp" 
     android:textStyle="bold" 
     android:layout_centerVertical="true" 
     android:text="TextView" /> 
</RelativeLayout> 

TextView는 이제 "제목"컨테이너입니다. 내가 원하는 것은이 새로운 제목 인 TextView에 자동으로 표시되는 manifest의 android : label 값입니다.

e. setTitle의 기본 메소드는 정의 된 뷰 ID에이 값을 추가해야합니다. ID 만 필요합니다. (

((텍스트 뷰) findViewById를 R.id.text_view_id을 :

+0

여기에 코드를 추가하십시오. – Sajmon

답변

1

나는 사용자 정의 제목과 비슷한 기능을 만들 수 있었다합니다. 나는 당신이 ID를 일치시킴으로써 그것을 할 수 있을지 의심 스럽다. 그것은 안드로이드가 허용한다면 거대한 보안 결함 일 것이다. 내가 한 일은 액티비티를 확장 한 것과 같은 방식으로 setTitle 메서드를 오버라이드하는 것입니다 ...

TextView mCustomTitle; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.myLayout); 
    mCustomTitle = (TextView)findViewById(R.id.title); 
} 

@Override 
public void setTitle(CharSequence title) { 
    //you can override the other setTitle as well if you need it 
    mCustomTitle.setText(title);   
} 
+0

이것은 다소 많았습니다. 매니페스트의 제목도 getTitle을 사용하여 포함했습니다. 예. .setText (getTitle()); – slott

+0

기본 클래스로 생성 했습니까? 나는 그 중 가장 번거로운 일을 실제로 겪었습니다. – MikeIsrael

+0

예 제가 확장 한 BaseActivity 클래스가 있습니다. 그것은 일을 더 쉽게하지만 제목이 들어있는 testview에 올바른 id가 사용 된 경우 setTile이 사용자 정의 제목 xml과 함께 작동 할 수 있으면 좋을 것이라고 생각합니다. – slott

2

setTitle이라는 그것이 당신이 텍스트 뷰의 텍스트를 설정의 setText()를 사용할 필요가 텍스트 뷰의 함께 할 수 없다, 활동의 제목을 설정합니다)). setText ("TextView text");

편집 :이 솔루션 확인 ->how to set custom title bar TextView Value dynamically in android?

+0

예 텍스트보기의 텍스트를 설정하는 방법을 알고 있습니다. 내가 원하는 것은 id가 내 사용자 정의 제목 레이아웃에 사용되어 setTitle 메서드가 여전히 작동 할 것입니다. – slott