Показать потрясающую кнопку после щелчка по списку android studio - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть просмотр списка, который показывает некоторые элементы, такие как кнопка textview adn, и у меня есть потрясающая кнопка (видимость: ушел), которая находится в представлении списка. Я хочу знать

Как я могу показать потрясающую кнопку, когда пользователь нажимает любую кнопку элемента списка, это мой код:

xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="8dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center">

        <ProgressBar
            android:id="@+id/progress_bar"
            style="?android:progressBarStyle"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:indeterminate="true"
            android:indeterminateTint="@color/txt_color"
            android:layout_gravity="center"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/rv_items"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="3dp"
            android:visibility="gone"/>
    </LinearLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="20dp"
        app:fabSize="normal"
        app:backgroundTint="@color/txt_color"
        app:srcCompat="@drawable/ic_dialog_close_dark"/>
</FrameLayout>

и это мой адаптер

@Override
public void onBindViewHolder(final MyView holder, final int position) {
    holder.name.setText(obj_productos.get(position).getName());
    holder.btn_item.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            **//SHOW fab_button**
        }
    });
}

Основной вид деятельности, здесь я объявляю свои переменные и макет, например, как recyclerview и потрясающую кнопку

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    FloatingActionButton fab_button;
    RecyclerView rv_items;
    Rv_Adapter adapter;
    ProgressBar progress_bar;
    ProgressDialog progress;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.productos_ctrl);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        fab_button = (FloatingActionButton)findViewById(R.id.fab_button);
        rv_items = (RecyclerView)findViewById(R.id.rv_items);
        progress_bar = (ProgressBar)findViewById(R.id.progress_bar);
        progress = new ProgressDialog(this, R.style.ProgressTheme);
        adapter = new Rv_Adapter(this, obj_productos);
        rv_items.setLayoutManager(new LinearLayoutManager(this));
        rv_items.setAdapter(adapter);
        fab_button.setOnClickListener(this);
    }
}

1 Ответ

0 голосов
/ 30 апреля 2020

Вы можете использовать слушатель / обратный вызов.


1. Создайте слушателя внутри адаптера или в любом месте

class MyAdapter {
 private Callback callback;
 
 // pass the listener to the constructor
 MyAdapter(Callback callback) {
  this.callback = callback;
 }
 
 @Override
 public void onBindViewHolder(final MyView holder, final int position) {
    ...
    holder.btn_item.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           callback.someAction(position);
        }
    });
}
 ...

 public interface Callback {
   void someAction(int position);
 }
}

2. Внутри вашей деятельности / фрагмент

class MyActivity extends AppCompatActivity implements MyAdapter.Callback {

 @override
 void onCreate(Bundle savedInstanceState) {
  ...
  
  
  MyAdapter adapter = MyAdapter(this);
 }
 
 @override
 void someAction(int position) {
   // show fab and other action here
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...