我在我的应用程序中使用listviews而不是button。我想在listview而不是setOnItemClickListener()上设置OnClickListener()。 这是我的代码:
listview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(), BillingActivity1.class));
}
});
有人可以建议一个方法来做OnClickListener()吗?
谢谢
答案 0 :(得分:2)
好的,我理解你的问题。
让我们分析案例:
如果您的ListView
有一些项目,那么好方法是设置onItemClickListener
,并根据点击的项目执行某些操作。你也可以为每个项目做同样的事情而不用考虑哪个项目被按下了,但这仍然是最好的方法。
当没有数据要显示时,列表视图将被隐藏。
ListView
(通常)将height
设置为wrap_content
,因此即使将onClickListener
设置为空列表也行不通,因为列表会导致高度为0,无法点击(您无法点击没有height
的视图,因为它不可见。)
如果看起来如此,您需要在ListView
上做一些事情,即使它是空的,只需在您的FloatingActionButton
添加一个按钮或Activity
,然后再使用这些内容:您可以在任何情况下都保留按钮(例如“添加项目”按钮),或者只有在ListView
为空时才能使其可见。类似的东西:
<Button
android:id="@+id/buttonEmptyListStuffs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="List is empty, click me!"
android:visibility="gone"/>
//init the button and do other stuffs
...
buttonEmptyListStuffs.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//go to activity 2
}
});
...
List<MyListViewItem> myListViewItems = //init your list of items for the listView
buttonEmptyListStuffs.setVisibility(myListViewItems.size() > 0 ? View.GONE : View.VISIBLE);
...
注意:我在没有编译器的情况下手工编写了这段代码,所以它可能不完美,只需采用它背后的概念
我忘了提到ListView有setEmptyView(View)
,它允许你为Listview设置一个自定义布局,如果它是空的。 Refer to his link获得了一个很好的教程
答案 1 :(得分:0)
使用此:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
startActivity(new Intent(getApplicationContext(), BillingActivity1.class));
}
});
答案 2 :(得分:0)
如果你真的想要处理点击listView的任何一点。您可以将列表放在FrameLayout
或LinearLayout
内,然后在布局上添加onClickListener。
findViewById(R.id.my_parent_list_layout).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// DO your stuff
}
});
答案 3 :(得分:0)
如果列表项目计数为空,则通过按钮(使用列表视图和按钮切换可见性)动态地更改列表视图的可见性,并将单击操作提供给按钮。