2017-12-04 13 views
0

すべての行を読み込んでリストビューに挿入する "Todo.txt"ファイルがあります。それはリストビューのようなアイテムを取得していないようだと問題は、どのように私はファイルを読み込んでいます。任意の提案?フラグメント内のファイルを読み込んでリストビューに入れます

public class MainFragment extends Fragment { 
    ArrayList<String> arrayList = new ArrayList<String>(); 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.fragment_main, container, false); 

     // Set title of fragment page 
     TextView textView = (TextView) v.findViewById(R.id.titleTextView); 
     textView.setText(getArguments().getString("fragmentTitle")); 

     ListView listView = (ListView)v.findViewById(R.id.listview); 

     arrayListSetup(); 

     ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
       getActivity(), 
       android.R.layout.simple_list_item_1, 
       arrayList 
     ); 

     listView.setAdapter(arrayAdapter); 

     return v; 
    } 

    private void arrayListSetup(){ 
     StringBuilder stringBuilder = new StringBuilder(); 
     try { 
      BufferedReader br = new BufferedReader(new FileReader(new MainActivity().FILENAME)); 
      String line; 

      // add line to arraylist 
      while((line = br.readLine()) != null){ 
       arrayList.add(line); 
      } 
      // close bufferedreader 
      br.close(); 

     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

MainActivityボタンをクリックしたときに、それがファイルにTODO活性を書き込みます

addTodoButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       // Get category of to-do 
       String category = spinner.getSelectedItem().toString(); 

       // Get the to-do text what has to be done 
       String todo_text = editText.getText().toString(); 


       // Try to create inputfile 
       try { 
        FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
        fos.write(todo_text.getBytes()); 
        fos.close(); 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
     }); 

答えて

0

問題は私がカルl getActivity()を呼び出してから、openFileInput()を呼び出してください。なぜなら、フラグメントはコンテキストではないからです!

1

私はあなたがあなたのArrayListを宣言したあなたのフラグメントのonCreateView()
に機能arrayListSetup()を呼ぶべきだと思いますarraylistsetup()関数を呼び出すことでそれを実装していませんでした。onCreateView()

+0

何とか忘れました。私はそれを追加しましたが、それはまだ動作していません。 – y4cO

+0

変更されたコードをアップロードできますか?機能を呼び出す場所を表示するには –

+0

私は最初のコード部分の上を参照して追加しました。 "listView"を作成した後 – y4cO

関連する問題