如何从另一个XML文件中查找ViewById?

SWE*_*SWE 2 android android-layout android-inflate

我用addevent.xml连接addevent.java是listview的内容,listview从另一个XML文件"item.xml"获取它的元素

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

        <Button
            android:id="@+id/d"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:drawablePadding="0dip"
            android:drawableRight="@drawable/icon_name" />

        <EditText
            android:id="@+id/en"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toLeftOf="@+id/d" >
        </EditText>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

现在我需要findviewbyId不是来自基本的xml文件,而是形成另一个"item.xml"

我尝试使用LayoutInflater作为代码,但它不起作用:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.addevent);
        myList = (ListView) findViewById(R.id.MyList);
        myList.setItemsCanFocus(true);
        myAdapter = new MyAdapter();
        myList.setAdapter(myAdapter);


        final LayoutInflater factory = getLayoutInflater();

        final View textEntryView = factory.inflate(R.layout.item, null);

        tvDisplayDate = (EditText)textEntryView.findViewById(R.id.editd);
        btnChangeDate=(Button)textEntryView.findViewById(R.id.d);
Run Code Online (Sandbox Code Playgroud)

请帮忙

Sim*_*iak 6

试试这个 View view = LayoutInflater.from(getApplication()).inflate(R.layout.item, null);

你怎么看,static from()方法接受1个参数(Context),你从给定的Context中获取LayoutInflater,在你的情况下,它将是你想要扩展View的Activity.

希望能帮助到你!