2016-08-27 11 views
1

プログラムは正常に動作しますが、なぜ1行しか読み書きしないのかわかりません。複数の行を記述してテキストビューに読み込むことができるはずです。ユーザーがクリックはそれを追加したときに自動的にTextViewに1行の読み書きしか行いません

public class MainActivity extends AppCompatActivity { 
EditText Activity, Miles, Date; 
TextView Log; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Activity = (EditText)(findViewById(R.id.editText)); 
    Miles = (EditText)(findViewById(R.id.editText2)); 
    Date = (EditText)(findViewById(R.id.editText3)); 
    Log = (TextView)(findViewById(R.id.textView)); 
} 
public void Add(View view) 
{ 
    String Myactivity = Activity.getText().toString() + "\t" + Miles.getText().toString() + "\t" + Date.getText().toString(); 
    try { 
     FileOutputStream fileOutputStream = openFileOutput("myActivities.txt", MODE_PRIVATE); 
     fileOutputStream.write(Myactivity.getBytes()); 
     fileOutputStream.close(); 
     Toast.makeText(getApplicationContext(), "Activty Added", Toast.LENGTH_LONG); 
     FileInputStream fileInputStream = openFileInput("myActivities.txt"); 
     InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream); 
     BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
     StringBuffer stringBuffer = new StringBuffer(); 
     String action; 
     while((action = bufferedReader.readLine())!= null) 
     { 
      stringBuffer.append(action + "\n"); 
     } 
     Log.setText(stringBuffer.toString()); 

    } catch (FileNotFoundException e) 
    { 
     e.printStackTrace(); 
     Toast.makeText(getApplicationContext(), "Fail", Toast.LENGTH_LONG); 
    } catch (IOException e) 
    { 
     e.printStackTrace(); 
     Toast.makeText(getApplicationContext(), "Fail", Toast.LENGTH_LONG); 
    } 


} 

}

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="mbl404.phoenix.edu.week2appgk5343.MainActivity"> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/editText" 
    android:hint="Please Enter Type of Workout" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignEnd="@+id/editText2" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/editText2" 
    android:hint="Please Enter Number of Miles" 
    android:layout_below="@+id/editText" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentEnd="true" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/editText3" 
    android:hint="Please Enter Date" 
    android:layout_below="@+id/editText2" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentEnd="true" /> 

<Button 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Add" 
    android:id="@+id/button" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" 
    android:onClick="Add" 
    /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Text" 
    android:id="@+id/textView" 
    android:layout_below="@+id/button" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentStart="true" /> 
</RelativeLayout> 
+0

編集あなたの質問とlayout.activity_main.xmlファイル –

答えて

0

はあなたのコードでは、あなたのtextview XML

android:maxLines="100" 

でこれを追加に読み込まなければならないように、私はそれを設定しています:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Text" 
    android:id="@+id/textView" 
    android:layout_below="@+id/button" 
    android:maxLines="100" <!-- add android:maxLines to specify the number of lines in textview --> 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentStart="true" /> 
0123更新

while((action = bufferedReader.readLine())!= null) 
    { 
     Log.setText(Log.getText() + action + "\n"); 
    } 
+0

を示したが、それはまだ新しい行と現在の行を置き換えると付け加えました。別の行を追加しないでください –

+0

私は自分の答えを更新しましたこれをチェックしてくださいと私には応答 –

+0

そのコードは動作しませんでした。しかし、それは私にアイデアstringBuffer.append(Log.getText()。toString()+ action + "\ n")を与えました。これは完全に –

関連する問題