私はアンドロイドが初めてで、ファイルを内部ストレージに保存しようとすると問題が発生します。新しい例は私のSDKでは機能しますが、電話では機能しません。
ちなみに、Android 2.1を使用して、sony Ericsson xperiaで例を実行しようとしています... log.i-次の行が表示されます:
/data/data/com.example.key/files/text/(my_title)
ありがとう。
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.new_text);
file = (EditText) findViewById(R.id.title_new);
entry = (EditText) findViewById(R.id.entry_new);
btn = (Button) findViewById(R.id.save_new);
btn.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
File myDir = getFilesDir();
NEWFILENAME = file.getText().toString();
if (NEWFILENAME.contentEquals("")){
NEWFILENAME = "UNTITLED";
}
NEWENTRY = entry.getText().toString();
try {
File file_new = new File(myDir+"/text/", NEWFILENAME);
file_new.createNewFile();
Log.i("file", file_new.toString());
if (file_new.mkdirs()) {
FileOutputStream fos = new FileOutputStream(file_new);
fos.write(NEWENTRY.getBytes());
fos.flush();
fos.close();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent textPass = new Intent("com.example.TEXTMENU");
startActivity(textPass);
}
});
}
//That's for creating... then in other activity i'm reading
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.text_menu);
btn = (Button) findViewById(R.id.newNote);
listfinal = (ListView) findViewById(R.id.listView);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent textPass = new Intent("com.example.TEXTNEW");
startActivity(textPass);
}
});
listfinal.setOnItemClickListener(this);
File fileWithinMyDir = getApplicationContext().getFilesDir();
loadbtn = (Button) findViewById(R.id.loadList);
loadbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
File myDir = getFilesDir();
File dir = new File(myDir + "/text/");
String[] files = dir.list();
//String[] files = getApplicationContext().fileList();
List<String> list = new ArrayList<String>();
for (int i =0; i < files.length; i++){
list.add(files[i]);
}
ArrayAdapter<String> ad = new ArrayAdapter<String>(TextMenu.this, android.R.layout.simple_list_item_1,
android.R.id.text1, list);
listfinal.setAdapter(ad);
}
});
}
私のアンドロイドマニフェストでは、私は権限を持っています
<uses-sdk
android:minSdkVersion="5"
android:targetSdkVersion="15" />
<uses-permission android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />