无法访问Custom ActionBar的TextView

时间:2015-05-22 04:10:01

标签: java android xml android-actionbar custom-action

我使用不同的布局并显示在操作栏中。我想以编程方式更改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 个答案:

答案 0 :(得分:1)

在xml中,将android:id="@android:id/text1"替换为android:id="@+id/text1"。具有id text2 ..

的TextView也是如此

并且在java中,您将能够以编程方式将其设置为:

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

要了解@android:id和@ + id之间的区别,请看: https://stackoverflow.com/a/9530028/2534007