【问题标题】:Error with creating databse创建数据库时出错
【发布时间】:2015-11-04 12:39:08
【问题描述】:
public class MainActivity extends FragmentActivity implements CustomEmpDialogFragment.EmpDialogFragmentListener {
private Fragment contentFragment;
private EmpListFragment employeeListFragment;
private EmpAddFragment employeeAddFragment;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    FragmentManager fragmentManager = getSupportFragmentManager();
    if (savedInstanceState != null)
    {
        if (savedInstanceState.containsKey("content"))
        {
            String content = savedInstanceState.getString("content");
            if (content.equals(EmpAddFragment.ARG_ITEM_ID))
            {
                if (fragmentManager.findFragmentByTag(EmpAddFragment.ARG_ITEM_ID) != null)
                {
                    setFragmentTitle(R.string.add_emp);
                    contentFragment = fragmentManager.findFragmentByTag(EmpAddFragment.ARG_ITEM_ID);
                }
            }
        }
        if (fragmentManager.findFragmentByTag(EmpListFragment.ARG_ITEM_ID) != null)
        {
            employeeListFragment = (EmpListFragment) fragmentManager.findFragmentByTag(EmpListFragment.ARG_ITEM_ID);
            contentFragment = employeeListFragment;
        }
    }
    else
    {
        employeeListFragment = new EmpListFragment();
        setFragmentTitle(R.string.app_name);
        switchContent(employeeListFragment, EmpListFragment.ARG_ITEM_ID);
    }
}
@Override
protected void onSaveInstanceState(Bundle outState)
{
    if (contentFragment instanceof EmpAddFragment)
    {
        outState.putString("content", EmpAddFragment.ARG_ITEM_ID);
    }
    else
    {
        outState.putString("content", EmpListFragment.ARG_ITEM_ID);
    }
    super.onSaveInstanceState(outState);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {
        case R.id.action_add:
            setFragmentTitle(R.string.add_emp);
            employeeAddFragment = new EmpAddFragment();
            switchContent(employeeAddFragment, EmpAddFragment.ARG_ITEM_ID);
            return true;
    }
    return super.onOptionsItemSelected(item);
}
public void switchContent(Fragment fragment, String tag)
{
    FragmentManager fragmentManager = getSupportFragmentManager();
    while (fragmentManager.popBackStackImmediate());
    if (fragment != null)
    {
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.content_frame, fragment, tag);

        if (!(fragment instanceof EmpListFragment))
        {
            transaction.addToBackStack(tag);
        }
        transaction.commit();
        contentFragment = fragment;
    }
}
protected void setFragmentTitle(int resourseId)
{
    setTitle(resourseId);
    getActionBar().setTitle(resourseId);
}
@Override
public void onBackPressed()
{
    FragmentManager fm = getSupportFragmentManager();
    if (fm.getBackStackEntryCount() > 0)
    {
        super.onBackPressed();
    }
    else if (contentFragment instanceof EmpListFragment|| fm.getBackStackEntryCount() == 0)
    {
        onShowQuitDialog();
    }
}
public void onShowQuitDialog()
{
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setCancelable(false);
    builder.setMessage("Do You Want To Quit?");
    builder.setPositiveButton(android.R.string.yes,new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialog, int id)
        {
            finish();
        }
    });
    builder.setNegativeButton(android.R.string.no,new DialogInterface.OnClickListener()
    {
        public void onClick(DialogInterface dialog, int id)
        {
            dialog.cancel();
        }
    });
    builder.create().show();
}
@Override
public void onFinishDialog()
{
    if (employeeListFragment != null)
    {
        employeeListFragment.updateView();
    }
}}

这里我正在使用 CRUD 操作创建一个数据库, 在编译这些代码时发现了一些错误,如下所示

Error:(35, 76) 错误:不兼容的类型:android.support.v4.app.Fragment 无法转换为 android.app.Fragment 错误:(41, 91) 错误:不兼容的类型:Fragment 无法转换为 EmpListFragment 错误:(91, 53) 错误:不兼容的类型:android.app.Fragment 无法转换为 android.support.v4.app.Fragment 错误:任务“:app:compileDebugJavaWithJavac”执行失败。 编译失败;有关详细信息,请参阅编译器错误输出。

【问题讨论】:

  • 你导入了吗android.support.v4.app.FragmentActivity
  • 根据您的 Logcat 输出,您的问题与数据库无关。

标签: java android android-fragments android-studio


【解决方案1】:

您正在混淆来自支持库的类Fragment 和来自标准sdk 的类Fragment。 如果你想使用第一个,那么支持片段管理器getSupportFragmentManager()。否则,使用带有getFragmentManager()的片段管理器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2016-11-24
    • 2015-07-03
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多