OnListItemclick只需按下按钮即可响应

时间:2013-03-31 23:13:08

标签: android listview adapter

我有一个带有自定义适配器的listview并在onListItemClick上实现。 我为每一行都有一些组件,当点击行中的某些内容时,它会启动一个活动。 我想知道,如果你单击启动活动的按钮而不是随机按下行,我怎么设置?或者最好在每个按钮的适配器中设置onClick吗?

扩展ListActivity:

@Override
protected void onListItemClick(ListView l, View v, int pos, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, pos, id);

            Intent i = new Intent(LevelMenu.this,AreaMenu.class);
            i.putExtra("level_value", (pos+1));
            startActivity(i);



    }
}

按钮:

<Button
    android:id="@+id/level"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/unlock"
    android:layout_centerHorizontal="true"
    android:focusable="false"
    android:clickable="false"
    android:text="Play" />

列表视图:

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:divider="@null"
    android:dividerHeight="15dp" />

2 个答案:

答案 0 :(得分:0)

如果不了解你的实际行动方式,可能会很困难。你可以做什么,如果你只有一般的onClick,你可以检查以确保View vinstanceof Button然后从按钮中获取id,tag或其他任何内容并使用它来启动你的活性。

public void onClick(View v){
    if( v instanceof Button){
        //a button was clicked!
    }
}

答案 1 :(得分:0)

setEnable中有一个方法baseAdapter,如果您不希望调用onItemClick,则只返回false。

对于您的情况,从您的按钮boolean传递一个onClick值,根据该值,您可以返回true false