java - 私有(private)静态类和 CursorLoader

标签 java android

下面是从The Bid nerd ranch这本书中复制过来的,我的问题是关于下面显示的private static class,我可以更改private static class RunCursorAdapterpublic class RunCursorAdapter 并将其移动到另一个文件?当加载器因任何原因重新运行时加载器重新加载时,这会导致任何内存问题吗?

public class RunListFragment extends ListFragment implements LoaderCallbacks<Cursor> {


@Override

public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    return new RunListCursorLoader(getActivity());
}


@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {

    RunCursorAdapter adapter =
    new RunCursorAdapter(getActivity(), (RunCursor)cursor);
    setListAdapter(adapter);
}



@Override
public void onLoaderReset(Loader<Cursor> loader) {
    setListAdapter(null);
}


private static class RunCursorAdapter extends CursorAdapter {

    private RunCursor mRunCursor;

    public RunCursorAdapter(Context context, RunCursor cursor) {
        super(context, cursor, 0);
        mRunCursor = cursor;
    }


    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        return inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
    }


    public void bindView(View view, Context context, Cursor cursor) {

        Run run = mRunCursor.getRun();
        TextView startDateTextView = (TextView)view;
        String cellText = context.getString(R.string.cell_text, run.getStartDate());
        startDateTextView.setText(cellText);

    }

}

最佳答案

您可以将私有(private)静态类移动到单独的文件中并将其公开。不会有内存问题,因为该类将在一个单独的文件中,它的对象不会对任何内容有任何隐式引用。

代码将以相同的方式工作,您只需将类移到外面即可。如果类不是静态的,情况会有所不同,但在这种情况下是一样的。

关于java - 私有(private)静态类和 CursorLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38003461/

相关文章:

java - 是否可以使用 Spring MVC 提取映射并从 URL 参数中分离变量?

android - 为什么 flutter 有 android.permission.REQUEST_INSTALL_PACKAGES

java - 如何根据宽度和高度像素在 Android 中缩放我的位图?

使用 Intent 的android youtube上传

android - 如何在Android中交替实现两个倒数计时器

Android DrawerLayout 不显示正确的指示器图标

java - 如何通过镜头让玩家被摧毁?

java - 如何将 Java 8 IntStream 转换为列表?

java - MS SQL 哈希密码与纯文本的比较

java - 将用户输入字符串转换为大写 Java