You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android技术求助:无法解析show(android.app.FragmentTrasanction, java.lang.String)方法

「Cannot resolve method 'show(android.app.FragmentTrasanction, java.lang.String)'」错误分析与修复

一、最直接的拼写问题

你报错信息里的FragmentTrasanction是明显的拼写错误!正确的类名应该是FragmentTransaction(注意中间是Transaction,多了一个c),这个拼写错误会导致编译器无法识别正确的类类型,自然找不到对应的show方法。

二、Fragment库版本不匹配

你的主类继承的是android.support.v7.app.AppCompatActivity,属于support兼容库,但你导入的却是原生系统的android.app.FragmentTransaction。如果你的dialog是android.support.v4.app.DialogFragment(兼容库的对话框碎片),它的show()方法需要的是兼容库的FragmentTransaction(也就是android.support.v4.app.FragmentTransaction),而非原生的,类型不匹配就会触发这个找不到方法的错误。

三、一步步修复问题

  • 先修正拼写错误:把代码里所有的FragmentTrasanction替换成正确的FragmentTransaction,这是最基础的一步。
  • 统一Fragment库的导入:
    把当前的import android.app.FragmentTransaction;替换成import android.support.v4.app.FragmentTransaction;,确保和AppCompatActivity使用的兼容库版本一致。同时确认你的自定义对话框碎片(比如DatePicker相关的)继承的是android.support.v4.app.DialogFragment,而不是原生的android.app.DialogFragment。
  • 正确获取事务实例:在AppCompatActivity中,要通过getSupportFragmentManager().beginTransaction()获取兼容库的FragmentTransaction,而不是getFragmentManager()(后者是获取原生系统的事务)。

给你一个正确的代码示例参考:

import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;

public class YourMainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_layout);
        
        // 假设这是你的日期选择对话框实例
        DialogFragment datePickerDialog = new YourDatePickerDialog();
        // 正确调用show方法
        datePickerDialog.show(getSupportFragmentManager().beginTransaction(), "DatePicker");
    }
}

另外还有个更简便的写法:DialogFragment的show方法支持直接传入FragmentManager和tag,内部会自动处理事务,代码更简洁:

datePickerDialog.show(getSupportFragmentManager(), "DatePicker");

内容的提问来源于stack exchange,提问作者pritesh shahare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:23:52