-1
私はWindows 7、Android SDKバージョン2.0を使用しています。このアプリケーションは3つのeditViewsにデータを入力し、2つのボタンはデータを保存して表示しますが、アプリケーションには何も表示されません。読み取りと書き込みの両方の許可を使用しますファイル読み込み/書き込みin android
'package com.example.anshul.writing_to_external;
import android.os.Environment;
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.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class MainActivity extends AppCompatActivity {
EditText edit_book,edit_pub,edit_price;
Button btnsave,btndisplay;
String state;
TextView displaytext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit_book=(EditText)findViewById(R.id.edit_book);
edit_pub=(EditText)findViewById(R.id.edit_pub);
edit_price=(EditText)findViewById(R.id.edit_price);
displaytext=(TextView)findViewById(R.id.display_text);
btnsave=(Button)findViewById(R.id.btnsave);
btndisplay=(Button)findViewById(R.id.btndisplay);
btnsave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
state= Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state)){
String b_name=edit_book.getText().toString();
String b_pub=edit_pub.getText().toString();
String b_price=edit_price.getText().toString();
String str="Book Name : "+b_name+"Book Publisher : "+b_pub+"Book Price : "+b_price;
Toast.makeText(getBaseContext(),"Saved "+str,Toast.LENGTH_LONG).show();
try{
File sdcard = getExternalFilesDir(null);
File directory=new File(sdcard.getAbsolutePath()+"/MyFiles/");
directory.mkdirs();
File file=new File(directory,"bookDetails.txt");
Toast.makeText(getBaseContext(),sdcard.canRead()?"Yes Read":"No Read",Toast.LENGTH_LONG).show();
FileOutputStream fout= new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fout);
osw.write(str);
osw.flush();
osw.close();
fout.close();
edit_book.setText("");
edit_pub.setText("");
edit_price.setText("");
}
catch (IOException e){
e.printStackTrace();
}
}
else
{
Toast.makeText(getBaseContext(),"Memory Card Not Present",Toast.LENGTH_LONG).show();
}}
});
btndisplay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
state= Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state)){
StringBuilder str = new StringBuilder();
String sL;
try{
File sdcard = getExternalFilesDir(null);
File directory=new File(sdcard.getAbsolutePath()+"/MyFiles/");
File file=new File(directory,"bookDetails.txt");
Toast.makeText(getBaseContext(),"Saved "+getFilesDir(),Toast.LENGTH_LONG).show();
Toast.makeText(getBaseContext(),sdcard.canWrite()?"Yes write":"No write",Toast.LENGTH_LONG).show();
FileInputStream fout= new FileInputStream(file);
InputStreamReader osw = new InputStreamReader(fout);
BufferedReader br = new BufferedReader(osw);
while ((sL=br.readLine())!=null){
str.append(sL);
}
br.close();
osw.close();
fout.close();
displaytext.setText(sL);
}
catch (IOException e){
e.printStackTrace();
}
}
else
{
Toast.makeText(getBaseContext(),"Memory Card Not Present",Toast.LENGTH_LONG).show();
}
}
});
}
}`
私はAPI 23+を使用しているかどうかを知るようになりました。マニフェストファイル[link](http:// developer .android.com/intl/es/training/permissions/requesting.html#handle-response) –
あなたはそれ以前に言及していませんでした。 –