2017-03-27 17 views
0

より多くのedittextの中のさまざまな文字列の中にテキストファイル(.txt)を電話(ルートまたはSDカード)に作成する単純なアプリケーションが必要です。ボタンが入力データを確認します。edittextの文字列を使ってテキストまたはCSVファイルを保存する

ファイルでの出力の例がある必要があります:私は、CSVファイルにデータをエクスポートすることも興味

John ; Smith ; 10/05/1970 ; 

output.txtと

。これはコードです:

MainActivity.java

package com.example.utente.questionario; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


    final EditText editText1 = (EditText) findViewById(R.id.editText1); 
    final EditText editText2 = (EditText) findViewById(R.id.editText2); 
    final EditText editText3 = (EditText) findViewById(R.id.editText3); 
    final Button button1 = (Button) findViewById(R.id.button1); 


    } 
} 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.utente.questionario.MainActivity"> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:inputType="textPersonName" 
    android:hint="Name" 
    android:layout_marginTop="74dp" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

<EditText 
    android:id="@+id/editText2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:inputType="textPersonName" 
    android:hint="Surname" 
    android:layout_below="@+id/editText1" 
    android:layout_alignStart="@+id/editText1" 
    android:layout_marginTop="42dp" /> 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Birth date" 
    android:textSize="18dp" 
    android:layout_marginBottom="67dp" 
    android:layout_above="@+id/button1" 
    android:layout_centerHorizontal="true" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Generate file" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="90dp" /> 

<EditText 
    android:id="@+id/editText3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:inputType="date" 
    android:hint="dd/mm/yyyy" 
    android:layout_centerVertical="true" 
    android:layout_alignStart="@+id/editText2" /> 

</RelativeLayout> 

更新:MainActivity.java Ritenの回答後:

package com.example.utente.questionario; 

import android.content.Context; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

import java.io.File; 
import java.io.OutputStreamWriter; 
import java.io.FileOutputStream; 

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    final EditText editText1 = (EditText) findViewById(R.id.editText1); 
    final EditText editText2 = (EditText) findViewById(R.id.editText2); 
    final EditText editText3 = (EditText) findViewById(R.id.editText3); 
    final Button button1 = (Button) findViewById(R.id.button1); 

    String name = editText1.getText().toString(); 
    String surname = editText2.getText().toString(); 
    String birthDate = editText3.getText().toString(); 

    private String getOrderText(String aa, String bb, String cc){ 

     StringBuilder sb = new StringBuilder(); 
     sb.append(aa+ ";"); 
     sb.append(" " + bb+ ";"); 
     sb.append(" " + cc); 

      return sb.toString(); 
    } 

    try { 
     FileOutputStream fileOut=openFileOutput("FileName.txt", MODE_APPEND); // you can directly give file name as FileName.csv 
     OutputStreamWriter outputWriter=new OutputStreamWriter(fileOut); 
     outputWriter.write(getOrderText(name, surname, birthDate)); 
     outputWriter.write("\n"); 
     outputWriter.close(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

答えて

1

あなたは、単にこれを試すことができます。これはあなたを助けることができる

private String getOrderText(String aa, String bb, String cc){ 

    StringBuilder sb = new StringBuilder(); 
    sb.append(aa+ ";"); 
    sb.append(" " + bb+ ";"); 
    sb.append(" " + cc); 

    return sb.toString(); 
} 

希望...

+0

はにはエラーがあります:

try { FileOutputStream fileOut=openFileOutput("FileName.txt", MODE_APPEND); // you can directly give file name as FileName.csv OutputStreamWriter outputWriter=new OutputStreamWriter(fileOut); outputWriter.write(getOrderText("string from edittext", "string from edittext", "string from edittext")); outputWriter.write("\n"); outputWriter.close(); } catch (Exception e) { e.printStackTrace(); } 

その後getOrderTextは、次のように定義することができますGetOrderTextメソッド? "private String getOrderText"の後のAndroidスタジオでは、 "expected;"と表示されます。 「return sb.toString();」の後に「結果の型がvoidのメソッドから値を返すことはできません」と示唆しています。 – Miche85

+0

@ Miche85いいえ、このようなエラーはありません。完全に正常に動作しています。getOrderTextメソッドで戻り値の型を確認してください... – Riten

+0

try-catchとgetOrderTextで訂正されたコードを表示できますか?ありがとう – Miche85

関連する問題