2

addevent.java と addevent.xml をコンテンツのリストビューに接続します。リストビューは、別の 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>

ここで、基本的なxmlファイルからではなく、別の「item.xml」を形成してviewbyIdを見つける必要があります

このコードとして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);

助けてください

4

2 に答える 2

6

これを試してView view = LayoutInflater.from(getApplication()).inflate(R.layout.item, null);

ご覧のとおり、静的 from() メソッドは 1 つの引数 (Context) を取り、指定された Context から LayoutInflater を取得します。この場合、ビューを膨張させたいアクティビティになります。

それが役に立てば幸い!

于 2012-05-14T16:05:49.217 に答える
1

クラス内からメソッドMyAdapterをオーバーライドできますgetView(これは、オンデマンドでアイテム レンダラーを生成するメソッドです)。

現在のアイテム (たとえば ) の適切なレイアウトをリサイクル/インフレートした後、で呼び出されたメソッドconvertViewを使用して、そのすべての子にアクセスできます。findViewByIdconvertView

    @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
    }
于 2012-05-14T16:07:14.043 に答える