Изменение элемента в listview одним щелчком мыши

Я хочу сделать ListView, когда вы долго нажимаете на элемент, элемент будет добавлен к кнопкам: удалить и обновить (только выбранный элемент):

Итак, я сделал ListView в моем MainLayout:

<ListView
    android:id="@+id/neighborhood"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginBottom="8dp"
    app:layout_constraintBottom_toTopOf="@+id/allAddresses"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/AddresSearch" />

и макет Custom ListView Item, который содержит 3 TextView:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/button_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".passItemView">

<TextView
    android:id="@+id/num"
    android:layout_width="86dp"
    android:layout_height="45dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="28dp"
    android:text="cv"
    app:layout_constraintEnd_toStartOf="@+id/house"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/house"
    android:layout_width="86dp"
    android:layout_height="45dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="32dp"
    android:text="cvc"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/pass"
    android:layout_width="86dp"
    android:layout_height="45dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="32dp"
    android:text="cv"
    app:layout_constraintEnd_toStartOf="@+id/num"
    app:layout_constraintTop_toTopOf="parent" />

и этот макет подключен к классу passItemView, и я сделал то, что при longClick на макете он добавит 2 кнопки (или даже просто сделает тост) Но ничего не делает.

public class passItemView extends AppCompatActivity {

Button delete = new Button(this);
Button update = new Button(this);
ConstraintLayout btnLayout;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pass_item_view);


    btnLayout = (ConstraintLayout) findViewById(R.id.button_layout);
    btnLayout.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            Toast.makeText(passItemView.this,"Toast it",Toast.LENGTH_LONG).show();
            btnLayout.addView((delete));
            btnLayout.addView((update));

            return false;
        }
    });

Спасибо за помощь.

Почему вы все еще используете listview? RecyclerView - лучший подход.

Piyush 31.10.2018 13:04
0
1
47
1

Ответы 1

используйте логическое значение (например, showButtons) и инициализируйте его, установив значение false для всех элементов. когда вы щелкнули someitem, сделайте переменную showButtons true и notifydatasetchange (перезагрузите lsitview) снова.

Другие вопросы по теме