Android Studio 我想使用图像按钮OnClickListener(Java)通过片段调用RecyclerView中存在的片段

jobtbby3  于 2023-03-09  发布在  Android
关注(0)|答案(1)|浏览(150)

These are my fragments along with adapter and other required classesThese are my layouts

    • 主页(片段)**'(图像按钮所在的位置)
package com.example.fragment;

import android.content.Intent;
import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.Switch;

public class Home extends Fragment implements View.OnClickListener {

    Image Button cricket_btn,football_btn,athletics_btn,badminton_btn;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
       View v = inflater. Inflate(R.layout.fragment_home, container, false);
       cricket_btn = v.findViewById(R.id.cric_btn);
       football_btn = v.findViewById(R.id.foot_btn);
       badminton_btn = v.findViewById(R.id.bad_btn);
       athletics_btn = v.findViewById(R.id.athl_btn);
       return v;

    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.cric_btn:
                AppCompatActivity activity = (AppCompatActivity) view.getContext();
                Fragment_Cricket myFragment = new Fragment_Cricket();
                activity.getSupportFragmentManager().beginTransaction().replace
                        (R.id.fragment_container, myFragment).addToBackStack(null).commit();
        }
    }
}`

我想打开一个碎片,它存在于回收站视图与图像按钮在主页(这也是一个碎片).我该怎么做
我试过谷歌,聊天GPT也堆栈溢出,但没有得到任何解决方案,所以在这里我与我的第一个问题/评论期待一个帮手'-'。

z3yyvxxp

z3yyvxxp1#

我不知道我是否很好地理解了你的问题。技术上,你想打开一个片段内的片段点击一个按钮?
首先,您必须在fragment_home. xml中添加一个视图,方法如下:

<FrameLayout
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/bottom_navigation"
            />

然后,您可以在按钮上设置单击侦听器事件,或者按照您已经完成的操作进行设置,例如:

athletics_btn.setOnClickListener(setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 call_fragment();
             }
         });

然后你可以用这样的方式打开一个又一个片段:

AppCompatActivity activity = (AppCompatActivity) view.getContext();
            Fragment_Cricket myFragment = new Fragment_Cricket();
            activity.getSupportFragmentManager().beginTransaction().replace
                    (R.id.fragment_container, myFragment, "idFragment").addToBackStack(null).commit();

试试让我知道是否有效。

相关问题