点击列表查看项目后显示晶圆厂按钮 安卓工作室

问题描述 投票:0回答:1

我有一个列表视图,显示一些项目,如文本视图和按钮,我有一个晶圆厂按钮(可见性:消失),是在列表视图。我想知道

如何在用户点击列表项的任何按钮时显示fab按钮,这是我的代码。

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**
        }
    });
}

主活动,在这里我声明我的变量和布局,如回收视图和fab按钮

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);
    }
}
java android android-studio
1个回答
0
投票

你可以使用listenercallback。


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. 在你的ActivityFragment里面

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
 }
}
© www.soinside.com 2019 - 2024. All rights reserved.