我用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>
现在我需要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);
任何帮助,请
答案 0 :(得分:6)
试试这个View view = LayoutInflater.from(getApplication()).inflate(R.layout.item, null);
你怎么看,静态from()方法接受1个参数(Context),你从给定的Context获得LayoutInflater,在你的情况下,它将是你想要膨胀View的Activity。
希望它有所帮助!
答案 1 :(得分:1)
从你的MyAdapter
课开始,你可以覆盖getView
方法(那是按需生成项目渲染器的方法)。
在回收/膨胀当前项目的正确布局(例如convertView
)后,您可以使用findViewById
上调用的convertView
方法访问其所有子项:
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
// initialize, inflate convertView from your layout if needed;
tvDisplayDate = (EditText)convertView.findViewById(R.id.editd);
// populate convertView with the item's details
}