java - 我如何从 fragment 访问 Activity 中的按钮ID

标签 java android android-studio

如何访问 Activity 中的按钮 ID。

Activity

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_meter);
    if (Build.VERSION.SDK_INT >= 23) {
        checkLocationPermission();
    }



 FragmentManager fragmentManager =  getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    Fragment map = new Map();
    fragmentTransaction.add(R.id.fragment_container, map);
    fragmentTransaction.commit();

 ...
}

fragment

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {




  if (view == null) {
        view = inflater.inflate(R.layout.fragment_map, container, false);

        Button button = (Button)getActivity().findViewById(R.id.btnStop);

    }

如何在我的代码 fragment 中实现 btnStop 的 setOnClickListener 方法?

最佳答案

将其添加到 fragment :

final View.OnClickListener btnClick = new View.OnClickListener() {
                           public void onClick(View v){
                               //button clicked 
                           }
                     }

将此添加到 Activity onCreate:

Button button = (Button)getActivity().findViewById(R.id.btnStop);
button.setOnClickListener(map.btnClick );
<小时/>

另一种方式:

将其添加到 fragment :

Button btnStop;

将其添加到 Activity 的 onCreate 中:

map.btnStop = (Button)getActivity().findViewById(R.id.btnStop);

然后,在 Activity 的 onCreate 之后调用的任何 fragment 事件监听器(例如 onActivityCreatedonStart)中,您都可以访问btnStop 并且您可以为其设置onClick 监听器。

关于java - 我如何从 fragment 访问 Activity 中的按钮ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53923265/

相关文章:

java - 如何仅对匹配我的正则表达式模式的字符串部分进行替换?

android - 使用glOrthof的OpenglES多平台屏幕比例解决方案

android - 使用 Java 或 Adob​​e AIR 或 Titanium 或 PhoneGap 为 Android 开发?

android - 安装在 Android 设备中的已发布 APK 被 Play Protect 错误阻止

java - 如何更改 hpi :run 的端口号

java - Java Web套接字服务器

java - 将 Web 应用程序引入 IBM Websphere Portal 6.0

android - 类似于HelloAR示例的Sceneform平面渲染

android-studio - flutter 应用栏中不需要的操作按钮

android-studio - Android Studio 2.3 CMake 不显示错误并且不会编译 C++ 代码