为什么最后的f一直都标红。是因为导包的问题么

package com.example.wechat;

import android.app.Activity;
import android.app.FragmentManager;

import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.fragment.app.Fragment;

public class MainActivity extends Activity {

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

    Button wechat=findViewById(R.id.wechat1);
    Button connect=findViewById(R.id.button2);
    Button found=findViewById(R.id.button3);
    Button me=findViewById(R.id.button4);
    wechat.setOnClickListener(oo);
    connect.setOnClickListener(oo);
    found.setOnClickListener(oo);
    me.setOnClickListener(oo);

}
View.OnClickListener oo = new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        FragmentManager fm = getFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        Fragment f =null;

        switch (view.getId()) {
            case R.id.wechat1:
                f = new wechat_fragment();
                break;
            case R.id.button2:
                f = new conntct_fragment();
                break;
            case R.id.button3:
                f = new found_fragment();
                break;
            case R.id.button4:
                f = new me_fragment();
                break;
            default:
                break;
        }
        ft.replace(R.id.fragment,f);
        ft.commit();
    }
};

}

有可能报null错误

你这个switch要是走到default; 那你的f就没有初始化,是空指针。你可以把default给删掉,也可以在default里面加上f的初始化 case R.id.button4:
f = new me_fragment();
break;
default:
f = new me_fragment();
break;