保存到SD卡并在ListView上显示

时间:2014-05-12 19:31:17

标签: android listview button save

所以我试图从EditText中获取一个TextInput来保存写在那里的按钮(保存)以保存到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;
    }
}

有没有想过如何让这项工作?

1 个答案:

答案 0 :(得分:0)

我移动了一些你的代码。首先,您需要在创建视图时附加R.id.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;
        }
    }