如何使用底部导航视图在MainActivity上处理另一个片段的侦听器?

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

大家早上好。

我想在onCreateMainActivity方法中处理另一个片段的侦听器。

但是,它没有用。

[MainActivity代码:

public class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        View inflatedView = getLayoutInflater().inflate(R.layout.fragment_notifications, null);
        Button searchBtn = (Button) inflatedView.findViewById(R.id.searchBtn);
        searchBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                outputText.setText("pressed");
                findDevice(); 
            }
        });

这是布局资源文件夹当前包含的内容:

Directory view of layout resource folder

java android android-fragments onclicklistener
1个回答
0
投票

所以我在另一个片段类上做到了。但是片段上的按钮侦听器仍然无法正常工作。

这是MainActivity

public class MainActivity extends AppCompatActivity {

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

        BottomNavigationView navView = findViewById(R.id.nav_view);
        // Passing each menu ID as a set of Ids because each
        // menu should be considered as top level destinations.

        AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
                R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications, R.id.navigation_message)
                .build();

        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
        NavigationUI.setupWithNavController(navView, navController);
    }
}

这是NotificationsFragment

    public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        notificationsViewModel =
                ViewModelProviders.of(this).get(NotificationsViewModel.class);
        View root = inflater.inflate(R.layout.fragment_notifications, container, false);
        final TextView textView = root.findViewById(R.id.text_notifications);
        notificationsViewModel.getText().observe(this, new Observer<String>() {
            @Override
            public void onChanged(@Nullable String s) {
                textView.setText(s);
            }
        });


        bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
        MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

        final View rootView = inflater.inflate(R.layout.fragment_notifications, container);
        outputText = (TextView) rootView.findViewById(R.id.outputTextView);
        inputEditText = (EditText) rootView.findViewById(R.id.inputEditText);
        sendBtn = (Button) rootView.findViewById(R.id.sendBtn); 
        final Button searchBtn = (Button) rootView.findViewById(R.id.searchBtn);

        searchBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                outputText.setText("pressed");
                inputEditText.setText("pressed");
                findDevice();
            }
        });
© www.soinside.com 2019 - 2024. All rights reserved.