繁体   English   中英

如何隐藏某些内容以不显示给 recyclerview

[英]How can I hide some content from showing to recyclerview

我正在研究我作为学习者从某个地方复制的代码。 该应用程序在recyclerview中显示数据,该数据来自firebase数据库。 一切运行良好,数据在 recyclerview 中显示得很好。

我现在担心的是:我在同一个活动中添加了另一个 recyclerview。 所以现在我有两个具有这些 ID 的 recyclerview:recyclerview 和 recyclerview2。 它们在一个活动中,但在不同的布局中,一次只能看到一个布局,通过单击按钮,它会隐藏一个布局并显示另一个布局。 目前,recyclerviews 显示相同的数据。

我现在想要的是:在这些 recyclerviews 中,我有一个 TextView,它会随时间改变文本。 它有时会显示此文本“已关闭”。 所以我希望所有具有 textview 的数据都显示在 recyclerview2 上,并且在第一个 recyclerview 上不可用。

所以我的问题是如果 textview 显示“已关闭”并且我希望 recyclerview2 仅显示具有 textview 显示此文本“已关闭”的数据,则使数据不显示在 recyclerview(第一个)上

我不知道从哪里开始。 下面是我想要添加代码的 MainActivity.java。

public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView, recyclerView2;
    private DatabaseReference mDatabase, vDatabase;
    private FirebaseAuth mAuth;
    private FirebaseAuth.AuthStateListener mAuthListener;


    TextView rtrratio, rtrratiopercentage, tppipss, slpipss, commenting, entry, tp, sl, tv1, tv2, tv3;
    RelativeLayout rSignals, rCalendar, rLessons, rServices, rContact;
    ImageButton imsignals, imcalendar, imlessons, imservices, imcontact;


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

        //defining main buttons (Image buttons)
        imsignals = (ImageButton) findViewById(R.id.im_signals_id);
        imcalendar = (ImageButton) findViewById(R.id.im_calendar_id);
        imlessons = (ImageButton) findViewById(R.id.im_lessons_id);
        imservices = (ImageButton) findViewById(R.id.im_services_id);
        imcontact = (ImageButton) findViewById(R.id.im_contact_id);


        //defining textviews
        entry = (TextView) findViewById(R.id.entry);
        tppipss = (TextView) findViewById(R.id.tpp);
        slpipss = (TextView) findViewById(R.id.slp);
        rtrratio = (TextView) findViewById(R.id.riskreward);
        rtrratiopercentage = (TextView) findViewById(R.id.rrewardp);
        commenting = (TextView) findViewById(R.id.comment);
        tp = (TextView) findViewById(R.id.tp);
        sl = (TextView) findViewById(R.id.sl);


        //bottom navigation
        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

        //button definitions
        Button btnRunning = (Button) findViewById(R.id.sRunning);
        Button btnPending = (Button) findViewById(R.id.sPending);
        Button btnClosed = (Button) findViewById(R.id.sClosed);

        //layouts definitions for bottom navigation
        rSignals = (RelativeLayout) findViewById(R.id.rlsignals);
        rCalendar = (RelativeLayout) findViewById(R.id.rlcalendar);
        rLessons = (RelativeLayout) findViewById(R.id.rllessons);
        rServices = (RelativeLayout) findViewById(R.id.rlservices);
        rContact = (RelativeLayout) findViewById(R.id.rlcontact);

        //layouts definitions for signals layout
        final RelativeLayout rRunning = (RelativeLayout) findViewById(R.id.rlRunning);
        final LinearLayout rPending = (LinearLayout) findViewById(R.id.rlHistory);
        final LinearLayout rClosed = (LinearLayout) findViewById(R.id.rlRating);


        //initialize recyclerview and FIrebase objects
        //for running signals
        recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setHasFixedSize(true);
        //for closed signals
        recyclerView2 = (RecyclerView) findViewById(R.id.recyclerview2);
        recyclerView2.setLayoutManager(new LinearLayoutManager(this));
        recyclerView2.setHasFixedSize(true);

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setReverseLayout(true);
        linearLayoutManager.setStackFromEnd(true);
        //for running signals
        recyclerView.setLayoutManager(linearLayoutManager);
        //for closed signals
        recyclerView.setLayoutManager(linearLayoutManager);

        //for signals get child as Blogzone
        mDatabase = FirebaseDatabase.getInstance().getReference().child("Blogzone");
        mAuth = FirebaseAuth.getInstance();
        mAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                if (mAuth.getCurrentUser() == null) {
                    Intent loginIntent = new Intent(MainActivity.this, RegisterActivity.class);
                    loginIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(loginIntent);
                }
            }
        };


    /////////////////////////////////////////////////////////////////////////////////////////////
    //signals
    @Override
    protected void onStart() {
        super.onStart();
        mAuth.addAuthStateListener(mAuthListener);
        FirebaseRecyclerAdapter<Blogzone, BlogzoneViewHolder> FBRA = new FirebaseRecyclerAdapter<Blogzone, BlogzoneViewHolder>(
                Blogzone.class,
                R.layout.card_items,
                BlogzoneViewHolder.class,
                mDatabase

        ) {
            @Override
            protected void populateViewHolder(BlogzoneViewHolder viewHolder, Blogzone model, int position) {
                final String post_key = getRef(position).getKey().toString();
                viewHolder.setPair(model.getPair());
                viewHolder.setBuySell(model.getBuysell());
                viewHolder.setOpenPrice(model.getOpenprice());
                viewHolder.setTakeProfit(model.getTakeprofit());
                viewHolder.setStopLoss(model.getStoploss());
                viewHolder.setProfitPips(model.getProfitpips());
                viewHolder.setLossPips(model.getLosspips());
                viewHolder.setComment(model.getComment());
                viewHolder.setResult(model.getResult());
                viewHolder.setRewarding(model.getRewarding());
                viewHolder.setRewardingP(model.getRewardingP());
                //viewHolder.setImageUrl(getApplicationContext(), model.getImageUrl());
                //viewHolder.setUserName(model.getUsername());
                viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        //   Intent singleActivity = new Intent(MainActivity.this, SinglePostActivity.class);
                        //   singleActivity.putExtra("PostID", post_key);
                        //   startActivity(singleActivity);
                    }
                });
            }
        };
        //running signals
        recyclerView.setAdapter(FBRA);
        //closed signals
        recyclerView2.setAdapter(FBRA);
    }

    public static class BlogzoneViewHolder extends RecyclerView.ViewHolder {
        View mView;

        public BlogzoneViewHolder(View itemView) {
            super(itemView);
            mView = itemView;
        }

        public void setPair(String pair) {
            TextView post_pair = mView.findViewById(R.id.quote);
            post_pair.setText(pair);
        }

        public void setBuySell(String buySell) {
            TextView post_buysell = mView.findViewById(R.id.type);
            post_buysell.setText(buySell);
        }

        public void setOpenPrice(String openPrice) {
            TextView post_openprice = mView.findViewById(R.id.entry);
            post_openprice.setText(openPrice);
        }

        public void setTakeProfit(String takeProfit) {
            TextView post_takeprofit = mView.findViewById(R.id.tp);
            post_takeprofit.setText("Tp: " + takeProfit);
        }

        public void setStopLoss(String stopLoss) {
            TextView post_stoploss = mView.findViewById(R.id.sl);
            post_stoploss.setText("Sl: " + stopLoss);
        }

        public void setProfitPips(String profitPips) {
            //nothing
        }

        public void setLossPips(String lossPips) {
            //nothing
        }

        public void setRewardingP(String comment) {
            //nothing
        }

        public void setComment(String comment) {
        //nothing
        }

        public void setRewarding(String rewarding) {
        //nothing
        }

        public void setResult(String result) {
            TextView post_result = mView.findViewById(R.id.status);
            post_result.setText("result");
            if (!post_result.getText().toString().trim().matches("Take Profit Hit")) {
                post_result.setTextColor(Color.parseColor("#ffcc0000"));
            } else if (!post_result.getText().toString().trim().matches("Stop Loss Hit")) {
                post_result.setTextColor(Color.parseColor("#ff669900"));
            } else if (!post_result.getText().toString().trim().matches("Pending...")) {
                post_result.setTextColor(Color.parseColor("#000"));
            } else {
                post_result.setTextColor(Color.parseColor("#ffffff"));
            }
        }
    }}

帮助我堆栈!

List<Blogzone> openedZones = new ArrayList<>();
List<Blogzone> closedZones = new ArrayList<>();

openedZones.addAll(mDatabase.stream().filter(zone -> zone.isOpened()).collect(Collectors.toList()));
closedZones.addAll(mDatabase.stream().filter(zone -> zone.isClosed()).collect(Collectors.toList()));

FirebaseRecyclerAdapter<Blogzone, BlogzoneViewHolder> FBRAopened = new FirebaseRecyclerAdapter<Blogzone, BlogzoneViewHolder>(
    Blogzone.class,
    R.layout.card_items,
    BlogzoneViewHolder.class,
    openedZones
) {
    ...
}
        
FirebaseRecyclerAdapter<Blogzone, BlogzoneViewHolder> FBRAclosed = new FirebaseRecyclerAdapter<Blogzone, BlogzoneViewHolder>(
    Blogzone.class,
    R.layout.card_items,
    BlogzoneViewHolder.class,
    closedZones
) {
    ...
}
        
//running signals
recyclerView.setAdapter(FBRAopened);
//closed signals
recyclerView2.setAdapter(FBRAclosed);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM