Проблема с контекстным меню в представлении списка с пользовательским представлением - PullRequest
0 голосов
/ 20 марта 2020

Я создаю 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());
} 

Я сделал то же самое в другом приложении, и это сработало прекрасно. Что я делаю не так сейчас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...