Сохранение на SD-карте и отображение в ListView

97
6

Поэтому я пытаюсь иметь TextInput из EditText, чтобы сохранить написанные там кнопки (сохранить), чтобы сохранить их на SD-карте, а также отобразиться в ListView. Просто не работает, не получайте ошибок.

Код, который я использую: (Извините, что его много)

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

findViewById(R.id.save).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {

}
});

try{
String TextInput = mTextInput.getText().toString();
if(!TextInput.trim().equals("")){
File file =new File("/sdcard/Accelerometer.html");

if(!file.exists()){
file.createNewFile();
}

FileWriter fileWritter = new FileWriter(file.getName(),true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(TextInput);
bufferWritter.close();
}
}catch (IOException e) {

e.printStackTrace(); }

}

public void onCreate() {

ListView lv;
ArrayList<String> FilesInFolder = GetFiles("/sdcard/Accelerometer.html");
lv = (ListView)findViewById(R.id.textOutput);

lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, FilesInFolder));

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// Clicking on items
}
});
}
private ArrayList<String> GetFiles(String string) {
// TODO Auto-generated method stub
return null;
}

public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
}

Любая мысль, как сделать эту работу?

спросил(а) 2020-04-04T02:12:14+03:00 5 месяцев, 4 недели назад
1
Решение
58

Я переместил часть вашего кода. Во-первых, при создании представления вам необходимо прикрепить прослушиватель R.id.save. Я переместил его в create, и у меня есть его, чтобы вызвать save. Вам также нужно написать функцию getfiles для чтения файлов. В настоящее время вы ничего не закодировали, когда ваш список никогда не будет заполнен.

        public void save() {
try{
String TextInput = mTextInput.getText().toString();
if(!TextInput.trim().equals("")){
File file =new File("/sdcard/Accelerometer.html");

if(!file.exists()){
file.createNewFile();
}

FileWriter fileWritter = new FileWriter(file.getName(),true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(TextInput);
bufferWritter.close();
}
}catch (IOException e) {

e.printStackTrace(); }

}

public void onCreate() {

ListView lv;
ArrayList<String> FilesInFolder = GetFiles("/sdcard/Accelerometer.html");
lv = (ListView)findViewById(R.id.textOutput);

lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, FilesInFolder));

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// Clicking on items
}
});

findViewById(R.id.save).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
save();
}
});
}
private ArrayList<String> GetFiles(String string) {
//TODO you need to read files and return a list of strings for this to work.
return null;
}

public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
}

ответил(а) 2020-04-04T02:29:09.136410+03:00 5 месяцев, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема