0

我有一个基于布尔选项创建的视图,该视图的标题为 socialoptions,它在单独的 xml 文件中定义。每当我尝试通过诸如socialoptions.setClickable(true);.

Java 代码:

        if (isUserProfile) {
            Log.d("user","user");
            middlelayout = (LinearLayout) findViewById (R.layout.usermiddlelayout);
        } else {
            Log.d("item","item");
            middlelayout = (LinearLayout)  findViewById (R.layout.itemmiddlelayout);
            socialoptions = (TextView) findViewById (R.id.socialoptions);
            map = (TextView) findViewById (R.id.map);
        }

XML 代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/itemmiddlelayout"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="25"
    android:background="@android:color/transparent"
    android:clickable="false"
    android:orientation="horizontal" >

    <RelativeLayout
        android:id="@+id/sociallayout"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:background="@android:color/transparent"
        android:paddingBottom="0dp"
        android:paddingRight="10dp"
        android:paddingTop="10dp" >

        <TextView
            android:id="@+id/socialoptions"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@android:color/transparent"
            android:clickable="false" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/maplayout"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@android:color/transparent"
        android:paddingBottom="10dp"
        android:paddingTop="0dp" >

        <TextView
            android:id="@+id/map"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@android:color/transparent"
            android:clickable="false" />
    </RelativeLayout>

</LinearLayout>
4

2 回答 2

1

根据评论

你不能做你想做的事;您不能引用尚未设置的 XML 布局。也就是说,你必须先使用setContentView膨胀这样的布局

可绘制对象作为可引用对象存储在应用程序中;它作为“文件”存在于您的 APK 中。布局只是在“创建”之前没有任何意义的数据。

设置内容视图或将布局扩展为视图后,null在引用布局的内容时将不再接收对象。

于 2012-09-19T20:07:20.950 回答
0

如果xml页面保存为usermiddlelayout.xml,可以使用R.layout.usermiddlelayout。如果 xml 文件中的线性布局将其 id 设置为 android:id="@+id/itemmiddlelayout" 您应该使用 R.id.itemmiddlelayout 而不是 R.layout.itemmiddlelayout。

这里,

middlelayout = (LinearLayout) findViewById (R.id.itemmiddlelayout);

于 2012-09-19T20:06:32.767 回答