单击更改列表视图中的项目

时间:2018-10-31 12:03:41

标签: android 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" />

和一个自定义ListView项的布局,其中包含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;
        }
    });

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

使用布尔值(例如:showButtons)并将所有项目初始化为false。 当您单击someitem时,使项目showButtons变量为true,然后再次notifydatasetchange(重新加载lsitview)。