我有一个从FirebaseDatabase填充的listView,我想使用onIntemLongClickListener删除项目,但它根本不起作用,因此永远不会调用该事件。我需要在代码中添加什么才能使其正常工作?谢谢! PS:我在与此相关的日志中没有任何错误。我也尝试过打开一个新活动,但是它也不起作用。
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
car = new Car();
listView = findViewById(R.id.list_view_main);
firebaseDatabase = FirebaseDatabase.getInstance();
list = new ArrayList<>();
adapter= new ArrayAdapter<>(this,R.layout.list_item,R.id.list_title, list);
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Log.v("long clicked","pos: " + position );
Intent intent = new Intent(MainActivity.this, AddCarActivity.class);
startActivity(intent);
}
});
数据库调用
protected void onStart() {
super.onStart();
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
car = dataSnapshot1.getValue(Car.class);
if (!list.contains(car.getLicenceNumber()))
list.add(car.getLicenceNumber());
}
listView.setAdapter(adapter);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
databaseReference.keepSynced(true);
}
CardView
<LinearLayout
android:id="@+id/list_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:orientation="vertical"
android:background="?attr/selectableItemBackground"
android:padding="16dp">
<TextView
android:id="@+id/list_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<ListView
android:id="@+id/list_view_main"
android:layout_width="372dp"
android:layout_height="367dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
android:longClickable="true"/>
答案 0 :(得分:0)
请尝试从您的ListView中删除android:longClickable="true"
,因为这可能会消耗长按事件。