2015-05-22 34 views
0

我正在使用不同的佈局並顯示到操作欄中。我想以編程方式更改我在佈局中使用的TextView的值。無法訪問自定義操作欄的TextView

這裏是我的xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:background="@drawable/splashscreen_background"> 


       <TextView 
        android:id="@android:id/text1" 
        android:layout_width="?attr/actionBarSize" 
        android:layout_height="match_parent" 
        android:textColor="#ff0000" 
        android:textSize="10sp" 
        android:textStyle="bold" 
        android:background="#034552" 
        android:text="M:101" 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:gravity="center" 
        android:minHeight="?android:attr/listPreferredItemHeight" 
        android:layout_alignParentLeft="true" 
        android:layout_alignParentTop="true" 
        android:layout_marginLeft="5dp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp"/> 


        <TextView 
        android:id="@android:id/text2" 
        android:layout_width="?attr/actionBarSize" 
        android:layout_height="match_parent" 
        android:textColor="#ff0000" 
        android:textSize="10sp" 
        android:textStyle="bold" 
        android:background="#034552" 
        android:text="N:101" 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:gravity="center" 
        android:minHeight="?android:attr/listPreferredItemHeight" 
        android:layout_alignParentRight="true" 
        android:layout_alignParentTop="true" 
        android:layout_marginRight="5dp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp"/> 
</RelativeLayout> 

這裏是Java文件代碼:

 ActionBar ab = getSupportActionBar(); 
     ab.setDisplayShowHomeEnabled(false); 
     ab.setDisplayShowTitleEnabled(false); 
     LayoutInflater li = LayoutInflater.from(this); 
     View customView = li.inflate(R.layout.test, null); 
     TextView tv = (TextView)customView.findViewById(R.id.text1); 
     ab.setCustomView(customView); 
     ab.setDisplayShowCustomEnabled(true); 

任何一個可以建議我我如何可以改變的TextView的值編程。

回答

1

在xml中,用android:id="@+id/text1"替換android:id="@android:id/text1"。這同樣適用於與TextView的ID 文本2 ..

,並在Java中,你將能夠以編程方式設置這樣的:

TextView tv = (TextView)customView.findViewById(R.id.text1); 
tv.setText("Your Text"); 

要findout什麼@android之間的區別:ID和@ +編號,請參閱: https://stackoverflow.com/a/9530028/2534007