Я создаю ListView с пользовательским представлением, в этом представлении у меня есть две кнопки.
Проблема в том, что я пытаюсь создать контекстное меню для удаления элемента из списка, но когда я пытаюсь долго щелкнуть элемент, ничего не происходит.
Это XML моего пользовательского представления:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView
android:id="@+id/text_wifi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:layout_marginTop="8dp"
android:layout_marginLeft="3dp"
android:textColor="@android:color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/button_test_wifi"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"/>
<ImageView android:id="@+id/image_wifi_status"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@id/text_wifi"
app:layout_constraintEnd_toEndOf="@id/button_test_blocks"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@id/button_test_blocks"
app:layout_constraintTop_toTopOf="@id/text_wifi" />
<Button android:id="@+id/button_test_wifi"
android:text="testar conexão"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
app:layout_constraintTop_toBottomOf="@id/text_wifi"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.10"
app:layout_constraintVertical_bias="0"/>
<Button android:id="@+id/button_test_blocks"
android:text="testar bloqueios"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
app:layout_constraintTop_toBottomOf="@id/text_wifi"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.9"
app:layout_constraintVertical_bias="0"/>
</androidx.constraintlayout.widget.ConstraintLayout>
Это код, который помещает контекстное меню в мой ListView:
public class WifiActivity extends AppCompatActivity {
private static final String TITULO_APPBAR = "Redes wi-fi";
private WifiDAO wifiDAO;
private ListaWifiAdapter wifiAdapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wifi);
UsuarioDatabase database = UsuarioDatabase.getInstance(this);
wifiDAO = database.getWifiDao();
setToolbarAsActionBar();
setListWifi();
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.activities_menu_remover, menu);
}
private void setListWifi() {
ListView listWifi = findViewById(R.id.activity_wifi_list);
wifiAdapter = new ListaWifiAdapter(this);
listWifi.setAdapter(wifiAdapter);
registerForContextMenu(listWifi);
wifiAdapter.atualiza(wifiDAO.todos());
}
Я сделал то же самое в другом приложении, и это сработало прекрасно. Что я делаю не так сейчас?