0

我有一个带有自定义适配器的列表视图并实现了 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" />
4

2 回答 2

0

如果您不想被调用,则有一个方法setEnable,只需从中返回 false 。baseAdapteronItemClick

对于您的情况boolean,从您的按钮传递一个值,onClick并在此基础上返回trueof false

于 2013-04-01T16:21:44.203 回答
0

如果没有看到你实际上是如何做的,这可能会很困难。你可以做什么,如果你只有一个一般的 onClick,你可以检查以确保它View vinstanceof Button从按钮中获取 id、标签或其他任何东西,并使用它来启动你的活动。

public void onClick(View v){
    if( v instanceof Button){
        //a button was clicked!
    }
}
于 2013-03-31T23:16:33.437 回答