我是Android编程的新手,我正在尝试在Android Studio中创建一个乘法应用程序,以帮助孩子们使用片段学习基本的乘法表。我收到以下错误。
Inconvertible types; cannot cast 'android.app.Fragment' to
'com.example.multiplication_with_fragments.FragmentTwo'
关于片段的主题,我还没有得到太多的了解,并且我一直在跟踪课堂上的示例代码。错误在下面的代码中的onButtonClick方法的第一行中引发。
public class MainActivity extends AppCompatActivity implements FragmentOne.ToolbarListener
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onButtonClick(int userAnswer, int correctAnswer)
{
FragmentTwo fragment = (FragmentTwo)
getFragmentManager().findFragmentById(R.id.fragment2);
fragment.displayMessage(userAnswer, correctAnswer);
}
更正上面代码中的错误后,该程序将无法运行。当我尝试运行该程序时出现致命错误,该程序将不会显示在设备上。
16363-16363/com.example.multiplication_with_fragments
E/AndroidRuntime: FATAL EXCEPTION: main
at com.example.multiplication_with_fragments.MainActivity.
onCreate(MainActivity.java:12)
第12行如下所示
setContentView(R.layout.activity_main);
如果需要更多说明或需要更多代码,请告诉我,并将其发布。
答案 0 :(得分:0)
替换
FragmentTwo fragment = (FragmentTwo)getFragmentManager().findFragmentById(R.id.fragment2);
使用
FragmentTwo fragment = (FragmentTwo) getSupportFragmentManager().findFragmentById(R.id.fragment2);
答案 1 :(得分:0)
如果是V1,而您的getFragmentManager()是V4,则可能是您的片段版本。
您的片段版本应如下所示。
import android.support.v4.app.Fragment;
public class MyBaseFragment extends Fragment {
public ... {
needs Fragment v4 Fragment
....
}
}
答案 2 :(得分:0)
在FragmentTwo中,您已经导入了这种类型的片段
import android.app.Fragment;
因此,请删除上方的行,并在片段类型的下方导入
import android.support.v4.app.Fragment;