1

在这里,TabView 是添加这个特定片段的类。Search 是 MainActivity,它从用户那里获取文件名。assets 文件夹中有一些文本文件。当用户输入名称时,例如 hello,它会连接到 hello.txt 并作为变量存储在 Search 活动中。我使用返回函数得到这个值。所以,主要问题来了。当我尝试从 hello.txt 获取数据时,该应用程序在涉及到这部分时突然关闭.. 我到处搜索!什么也没找到!请帮助..

    public class fg1 extends Fragment {

        LinearLayout layout;
        private String file;
        private Search obj;
        private Context mX;
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            if (container == null) {
                return null;
            }


        layout = (LinearLayout)inflater.inflate(R.layout.fg_code, container, false);
        TextView snippet = (TextView)layout.findViewById(R.id.codeView);

        mX = TabView.getContext();
        AssetManager assetManager = mX.getAssets();
        file = obj.getFileName();
                InputStream input;
            try {
                 input = assetManager.open(file);

                 int size = input.available();
                 byte[] buffer = new byte[size];
                 input.read(buffer);
                 input.close();
                 // byte buffer into a string
                 String text = new String(buffer);
                 snippet.setText(text);

         } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
         }  
        return layout;
    }
}
4

1 回答 1

1

自己找到了答案。对于任何未来的引用,不要从活动中获取数据,而是将数据从承载特定片段的父活动传递给片段(建议使用片段的构造函数)并使用它。

于 2013-01-13T10:39:36.437 回答