如何响应MvxLinearLayout的模板项按钮单击

时间:2014-09-02 18:53:24

标签: android mvvmcross

我有以下线性布局

            <MvxLinearLayout
                android:layout_alignParentTop="true"
                android:layout_toLeftOf="@+id/add_skill"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:showDividers="middle"
                android:divider="?android:dividerHorizontal"
                local:MvxBind="ItemsSource Skills"
                local:MvxItemTemplate="@layout/itemnameddelete" />

ItemNamedDelete.axml是:

<?xml version="1.0" encoding="utf-8"?>
<MvxLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeightSmall"
android:baselineAligned="false"
android:showDividers="middle"
android:divider="?android:dividerVertical"
android:dividerPadding="8dp">
<TextView
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="center_vertical"
    android:textAppearance="?android:textAppearanceMedium"
    android:text="Text"
    local:MvxBind="Text ." />
<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:gravity="right"
    style="?android:borderlessButtonStyle"
    android:src="@android:drawable/ic_menu_delete" />

如何指定用户点击ImageButton时会发生什么?我希望这可重用,所以我希望我可以指定MvxLinearLayout的点击绑定。我尝试了“Click MyCommand”但是当我点击TextView时会触发。 ItemClick不起作用。

1 个答案:

答案 0 :(得分:0)

我知道你能做什么,是通过android:id="@+id/YourID"在layout-XML文件中声明一个id,并将其用作附加onClick()事件的参考。

这是一个更详细的例子:

<?xml version="1.0" encoding="utf-8"?>
<MvxLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeightSmall"
android:baselineAligned="false"
android:showDividers="middle"
android:divider="?android:dividerVertical"
android:dividerPadding="8dp">
<TextView
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="center_vertical"
    android:textAppearance="?android:textAppearanceMedium"
    android:text="Text"
    local:MvxBind="Text ." />
<ImageButton
    andorid:id="@+id/YourImageButton"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:gravity="right"
    style="?android:borderlessButtonStyle"
    android:src="@android:drawable/ic_menu_delete" />

并在相关java activityClass的onCreated方法中使用findViewById函数。

findViewById(R.id.YourImageButton).setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        //Here goes your code ...
                    }
                });

而是一个类的匿名实例,你可以重用一些东西。那么关系就是你定义的id。

<强>更新

当然ervery项目得到另一个Id,所以你的线性布局有一个Id,你的图像按钮,你的TextView a.s.o. ...