首頁(yè) 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門(mén) / 進(jìn)階 / 社區(qū)互助

新手 | 你問(wèn)我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 16176|回復(fù): 0
上一主題 下一主題
[教程]

Android 軟件開(kāi)發(fā)之?dāng)?shù)據(jù)的 新建 儲(chǔ)存 讀取 刪除 詳解(十四)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-8-28 16:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
Android軟件開(kāi)發(fā)之?dāng)?shù)據(jù)的新建 儲(chǔ)存 讀取 刪除   
     
1.使用SharedPreferences處理數(shù)據(jù)的 新建 儲(chǔ)存 讀取 刪除   
   
   
        SharedPreferences保存后生成的是XML文件,內(nèi)容是以節(jié)點(diǎn)的形勢(shì)保存在文件中,SharedPreferences類(lèi)提供了非常豐富的處理數(shù)據(jù)的方法下面我向大家介紹一下如何使用SharedPreferences來(lái)處理數(shù)據(jù)。   
   
   
輸入須要保存的內(nèi)容   
     
輸入姓名:雨松MOMO   
輸入號(hào)碼:15810463139   
     
點(diǎn)擊保存成功   
     
        保存成功以后,數(shù)據(jù)被保存到了data路徑下 /當(dāng)前包名 (紅框內(nèi)的包名是我的程序包名) /shared_prefs/main.xml中 , 使用EditPlus 打開(kāi)保存的內(nèi)容,我們可以清晰的看到內(nèi)容是以一個(gè)節(jié)點(diǎn)一個(gè)節(jié)點(diǎn)的形式存在XML中。   
     
         SharedPreferences類(lèi)中提供了非常方便方法去保存數(shù)據(jù)與讀取數(shù)據(jù)大家請(qǐng)看下面的代碼片段,一個(gè)程序中可以存在多個(gè)SharedPreferences保存的XML文件 ,代碼中只須要根據(jù)不同的XML名稱(chēng)就可以通過(guò)方法拿到相應(yīng)的對(duì)象,由于它的批量遍歷查找,當(dāng)然這樣的作法肯定沒(méi)有數(shù)據(jù)庫(kù)更方便快捷,所以在開(kāi)發(fā)中處理一些比較小的零碎的數(shù)據(jù)就可以保存在這里,比如說(shuō)記錄軟件中用戶(hù)設(shè)置的音量大小,用戶(hù)輸入的查找信息等等都可以存在SharedPreferences中。   
  1. public class SPActivity extends Activity {   
          
        /**使用SharedPreferences 來(lái)儲(chǔ)存與讀取數(shù)據(jù)**/   
        SharedPreferences mShared = null;   
       
        /**程序中可以同時(shí)存在多個(gè)SharedPreferences數(shù)據(jù), 根據(jù)SharedPreferences的名稱(chēng)就可以拿到對(duì)象**/   
        public final static String SHARED_MAIN = "main";   
          
        /**SharedPreferences中儲(chǔ)存數(shù)據(jù)的Key名稱(chēng)**/   
        public final static String KEY_NAME = "name";   
        public final static String KEY_NUMBER = "number";   
          
        /**SharedPreferences中儲(chǔ)存數(shù)據(jù)的路徑**/   
        public final static String DATA_URL = "/data/data/";   
        public final static String SHARED_MAIN_XML = "main.xml";   
          
          
        @Override   
        protected void onCreate(Bundle savedInstanceState) {   
            setContentView(R.layout.sharedpreferences);   
            /**拿到名稱(chēng)是SHARED_MAIN 的SharedPreferences對(duì)象**/   
            mShared = getSharedPreferences(SHARED_MAIN, Context.MODE_PRIVATE);   
            /**拿到SharedPreferences中保存的數(shù)值 第二個(gè)參數(shù)為如果SharedPreferences中沒(méi)有保存就賦一個(gè)默認(rèn)值**/   
            String name = mShared.getString(KEY_NAME, "數(shù)據(jù)庫(kù)中沒(méi)有儲(chǔ)存姓名");   
            String number = mShared.getString(KEY_NUMBER, "數(shù)據(jù)庫(kù)中沒(méi)有儲(chǔ)存號(hào)碼");   
               
            final EditText editName = (EditText)findViewById(R.id.sp_et0);   
            final EditText editNumber = (EditText)findViewById(R.id.sp_et1);   
            editName.setHint("上次輸入的姓名為【 " +name+"】");   
            editNumber.setHint("上次輸入的號(hào)碼為【 " +number+"】");   
               
            Button button0 = (Button)findViewById(R.id.sp_button0);   
               
            /**監(jiān)聽(tīng)按鈕點(diǎn)擊后保存用戶(hù)輸入信息到SharedPreferences中**/   
            button0.setOnClickListener(new  OnClickListener() {   
                   
                @Override   
                public void onClick(View arg0) {   
                    /**拿到用戶(hù)輸入的信息**/   
                    String name = editName.getText().toString();   
                    String number = editNumber.getText().toString();   
                    /**開(kāi)始保存入SharedPreferences**/   
                    Editor editor = mShared.edit();   
                    editor.putString(KEY_NAME, name);   
                    editor.putString(KEY_NUMBER, number);   
                    /**put完畢必需要commit()否則無(wú)法保存**/   
                    editor.commit();   
                    ShowDialog("保存SharedPreferences成功");   
                      
                }   
            });   
               
            Button button1 = (Button)findViewById(R.id.sp_button1);   
            button1.setOnClickListener(new  OnClickListener() {   
                   
                @Override   
                public void onClick(View arg0) {   
                    /**開(kāi)始清除SharedPreferences中保存的內(nèi)容**/   
                    Editor editor = mShared.edit();   
                    editor.remove(KEY_NAME);   
                    editor.remove(KEY_NUMBER);   
                    //editor.clear();   
                    editor.commit();   
                    ShowDialog("清除SharedPreferences數(shù)據(jù)成功");   
                }   
            });   
               
            Button button2 = (Button)findViewById(R.id.sp_button2);   
            button2.setOnClickListener(new OnClickListener() {   
       
                @Override   
                public void onClick(View arg0) {   
                    /** 刪除SharedPreferences文件 **/   
                    File file = new File(DATA_URL + getPackageName().toString()   
                            + "/shared_prefs", SHARED_MAIN_XML);   
                    if (file.exists()) {   
                        file.delete();   
                    }   
                    ShowDialog("刪除SharedPreferences文件成功");   
                }   
            });   
               
               
            super.onCreate(savedInstanceState);   
        }   
       
        public void ShowDialog(String string) {   
            AlertDialog.Builder builder = new AlertDialog.Builder(SPActivity.this);   
            builder.setIcon(R.drawable.icon);   
            builder.setTitle(string);   
            builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {   
                public void onClick(DialogInterface dialog, int whichButton) {   
                    finish();   
                }   
            });   
            builder.show();   
        }   
    }   
復(fù)制代碼
  
  1. <?xml version="1.0" encoding="utf-8"?>   
       
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
            android:layout_width="fill_parent"   
            android:layout_height="fill_parent"   
            android:orientation="vertical"   
            >   
            <ImageView android:id="@+id/sp_image"   
                    android:layout_width="wrap_content"   
                     android:layout_height="wrap_content"   
                    android:src="@drawable/image"   
                    android:layout_gravity="center"   
                    />   
            <EditText android:id="@+id/sp_et0"   
                              android:layout_width="fill_parent"   
                          android:layout_height="wrap_content"   
                          android:hint="請(qǐng)輸入你的姓名">   
            </EditText>   
            <EditText android:id="@+id/sp_et1"   
                              android:layout_width="fill_parent"   
                          android:layout_height="wrap_content"   
                          android:hint="請(qǐng)輸入你的號(hào)碼">   
            </EditText>   
            <Button   android:id="@+id/sp_button0"   
                      android:layout_width="wrap_content"   
                          android:layout_height="wrap_content"   
                          android:text="保存輸入內(nèi)容shared">   
            </Button>   
            <Button   android:id="@+id/sp_button1"   
                      android:layout_width="wrap_content"   
                          android:layout_height="wrap_content"   
                          android:text="清除shared保存內(nèi)容">   
            </Button>   
            <Button   android:id="@+id/sp_button2"   
                      android:layout_width="wrap_content"   
                          android:layout_height="wrap_content"   
                          android:text="刪除shared文件">   
            </Button>   
    </LinearLayout>
復(fù)制代碼
2.在本地data文件下使用自己生成的文件處理數(shù)據(jù)的 新建 儲(chǔ)存 讀取 刪除   
   
       如果說(shuō)不想把內(nèi)容存在SharedPreferences中的話,我們可以自己寫(xiě)一個(gè)文件保存須要的數(shù)據(jù),在這里我將文件保存在系統(tǒng)中的工程路徑下。   
   
輸入需要保存的內(nèi)容   
   
     
   
保存完畢后紅框內(nèi)呈現(xiàn)之前保存的數(shù)據(jù)   
     
   
        保存文件以后,文件被保存在了當(dāng)前工程下 files 文件夾的路徑下,這里說(shuō)一下data文件夾 如果手機(jī)沒(méi)有root 權(quán)限 用戶(hù)是訪問(wèn)不到的,這種儲(chǔ)存方式有一個(gè)麻煩的地方就是文件中保存的數(shù)據(jù)須要程序員自己去處理 , 好比文件中保存了很多字符串?dāng)?shù)據(jù) 但是我們只須要其中的一部分?jǐn)?shù)據(jù),這樣就須要自己去寫(xiě)代碼去從文件中拿需要的數(shù)據(jù)。   
     
  1. public class FileActivity extends Activity {   
        public final static String FILE_NAME = "a.txt";   
          
        /**File中儲(chǔ)存數(shù)據(jù)的路徑**/   
        public final static String DATA_URL = "/data/data/";   
        @Override   
        protected void onCreate(Bundle savedInstanceState) {   
            setContentView(R.layout.file);   
            /**讀取內(nèi)容**/   
            String content = loadFile();   
            if(content == null) {   
                content ="上次沒(méi)有輸入內(nèi)容請(qǐng)輸入";   
            }   
             String str  = "上次輸入保存的內(nèi)容的姓名為【 " +content + "】";   
            final EditText editContent = ((EditText)findViewById(R.id.file_et0));   
            editContent.setHint(str);   
            Button button0 = (Button)findViewById(R.id.file_button0);   
               
            /**監(jiān)聽(tīng)按鈕點(diǎn)擊后保存用戶(hù)輸入信息到file中**/   
            button0.setOnClickListener(new  OnClickListener() {   
                @Override   
                public void onClick(View arg0) {   
                    /**拿到用戶(hù)輸入的信息**/   
                    String content = editContent.getText().toString();   
                    /**開(kāi)始保存入file**/   
                    saveFile(content);   
                    ShowDialog("保存File文件成功");   
                }   
            });   
               
            Button button1 = (Button)findViewById(R.id.file_button1);   
            /**監(jiān)聽(tīng)按鈕點(diǎn)擊后清空f(shuō)ile中內(nèi)容**/   
            button1.setOnClickListener(new  OnClickListener() {   
                @Override   
                public void onClick(View arg0) {   
                    cleanFile();   
                    ShowDialog("清空File文件成功");   
                }   
            });   
               
            Button button2 = (Button)findViewById(R.id.file_button2);   
               
            /**監(jiān)聽(tīng)按鈕點(diǎn)擊后刪除file文件**/   
            button2.setOnClickListener(new  OnClickListener() {   
                @Override   
                public void onClick(View arg0) {   
                    File file = new File(DATA_URL + getPackageName().toString()   
                            + "/files", FILE_NAME);   
                    if (file.exists()) {   
                        file.delete();   
                    }   
                    ShowDialog("刪除file文件成功");   
                }   
            });   
               
            super.onCreate(savedInstanceState);   
        }   
          
        /**   
         * 保存內(nèi)容   
         * @param str   
         */   
        public void saveFile(String str) {   
            try {   
                FileOutputStream outStream = this.openFileOutput(FILE_NAME,   
                        Context.MODE_WORLD_READABLE);   
                outStream.write(str.getBytes());   
                outStream.close();   
            } catch (FileNotFoundException e) {   
            } catch (IOException e) {   
            }   
        }   
       
        /**   
         * 因?yàn)閖ava刪除文件內(nèi)容只有一種實(shí)現(xiàn)方法,就是把整個(gè)文件重寫(xiě),只是把須要?jiǎng)h除的那一條記錄去除掉   
         */   
        public void cleanFile() {   
            //如果只須要?jiǎng)h除文件中的一部分內(nèi)容則須要在這里對(duì)字符串做一些操作   
            String cleanStr = "";   
            try {   
                FileOutputStream outStream = this.openFileOutput(FILE_NAME,   
                        Context.MODE_WORLD_READABLE);   
                outStream.write(cleanStr.getBytes());   
                outStream.close();   
            } catch (FileNotFoundException e) {   
            } catch (IOException e) {   
            }   
       
        }   
          
       
          
          
        public String loadFile() {   
            try {   
                FileInputStream inStream = this.openFileInput(FILE_NAME);   
                ByteArrayOutputStream stream = new ByteArrayOutputStream();   
                byte[] buffer = new byte[1024];   
                int length = -1;   
                while ((length = inStream.read(buffer)) != -1) {   
                    stream.write(buffer, 0, length);   
                }   
                stream.close();   
                inStream.close();   
                return stream.toString();   
            } catch (FileNotFoundException e) {   
                e.printStackTrace();   
            } catch (IOException e) {   
            }   
            return null;   
        }   
          
        public void ShowDialog(String str) {   
            AlertDialog.Builder builder = new AlertDialog.Builder(FileActivity.this);   
            builder.setIcon(R.drawable.icon);   
            builder.setTitle(str);   
            builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {   
                public void onClick(DialogInterface dialog, int whichButton) {   
                    finish();   
                }   
            });   
            builder.show();   
        }   
    }   
復(fù)制代碼
  
  1. <?xml version="1.0" encoding="utf-8"?>   
       
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
            android:layout_width="fill_parent"   
            android:layout_height="fill_parent"   
            android:orientation="vertical"   
            >   
            <ImageView android:id="@+id/file_image"   
                    android:layout_width="wrap_content"   
                     android:layout_height="wrap_content"   
                    android:src="@drawable/jay"   
                    android:layout_gravity="center"   
                    />   
               
            <EditText android:id="@+id/file_et0"   
                              android:layout_width="fill_parent"   
                          android:layout_height="wrap_content"   
                          android:hint="請(qǐng)輸入需要保存的內(nèi)容">   
            </EditText>   
            <Button   android:id="@+id/file_button0"   
                      android:layout_width="wrap_content"   
                          android:layout_height="wrap_content"   
                          android:text="保存入file">   
            </Button>   
            <Button   android:id="@+id/file_button1"   
                      android:layout_width="wrap_content"   
                          android:layout_height="wrap_content"   
                          android:text="清除file保存內(nèi)容">   
            </Button>   
            <Button   android:id="@+id/file_button2"   
                      android:layout_width="wrap_content"   
                          android:layout_height="wrap_content"   
                          android:text="刪除file文件">   
            </Button>   
    </LinearLayout>
復(fù)制代碼
3.在本地程序res/raw中讀取數(shù)據(jù)操作   
   
        Android 下提供了專(zhuān)門(mén)讀取程序res/raw路徑下資源的方法,但是沒(méi)有提供寫(xiě)入raw內(nèi)容的方法,也就是說(shuō)只能讀不能寫(xiě),在做軟件的時(shí)候有時(shí)須要讀取大量的文字資源,由于這些資源文字在軟件中不會(huì)改變所以無(wú)需去對(duì)它的內(nèi)容重寫(xiě)修改,就可以使用raw來(lái)操作數(shù)據(jù)。   
   
   
如圖所示:在列表中讀取.bin文件中的內(nèi)容分別顯示在listView中   
   
   
     
        如圖所示在raw路徑下存了一個(gè)文件date0.bin ,下面是bin文件中保存的內(nèi)容,程序中須要對(duì)這個(gè).bin文件的內(nèi)容進(jìn)行讀取并顯示在屏幕中。   
     
   
   
   
下面給出代碼的實(shí)現(xiàn)   
  1. public class loadRawActivity extends ListActivity {   
       
        private class MyListAdapter extends BaseAdapter {   
            private int[] colors = new int[] { 0xff626569, 0xff4f5257 };   
       
            public MyListAdapter(Context context) {   
                mContext = context;   
            }   
       
            public int getCount() {   
                return inpormation.length;   
            }   
       
            @Override   
            public boolean areAllItemsEnabled() {   
                return false;   
            }   
       
            public Object getItem(int position) {   
                return position;   
            }   
       
            public long getItemId(int position) {   
                return position;   
            }   
       
            public View getView(int position, View convertView, ViewGroup parent) {   
                TextView tv;   
                if (convertView == null) {   
                    tv = (TextView) LayoutInflater.from(mContext).inflate(   
                            android.R.layout.simple_list_item_1, parent, false);   
                } else {   
                    tv = (TextView) convertView;   
                }   
                int colorPos = position % colors.length;   
                tv.setBackgroundColor(colors[colorPos]);   
                tv.setText(String.valueOf(position + 1) + ":"   
                        + inpormation[position]);   
                return tv;   
            }   
       
            private Context mContext;   
        }   
       
        String[] inpormation = null;   
        ListView listView;   
       
        @Override   
        protected void onCreate(Bundle savedInstanceState) {   
            readFile(R.raw.date0);   
            setListAdapter(new MyListAdapter(this));   
            listView = getListView();   
            int[] colors = { 0, 0xFF505259, 0 };   
            listView   
                    .setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));   
            listView.setDividerHeight(10);   
            super.onCreate(savedInstanceState);   
        }   
       
        /**   
         * 從raw中讀取數(shù)據(jù)   
         * @param ID   
         */   
        public void readFile(int ID) {   
            InputStream in = null;   
            String temp = "";   
            try {   
                in = this.getResources().openRawResource(ID);   
                byte[] buff = new byte[1024];// 緩存   
                int rd = 0;   
                ByteArrayOutputStream baos = new ByteArrayOutputStream();   
                while ((rd = in.read(buff)) != -1) {   
                    baos.write(buff, 0, rd);   
                    temp = new String(baos.toByteArray(), "UTF-8");   
                }   
                baos.close();   
                in.close();   
                inpormation = temp.split("
  2. ");   
            } catch (Exception e) {   
                Toast.makeText(this, "文件沒(méi)有找到", 2000).show();   
            }   
        }   
       
    }
復(fù)制代碼
3.在SD卡中處理新建 寫(xiě)入 讀取 刪除 的操作   
   
       可以把數(shù)據(jù)保存在SD卡中,在SD卡中建立一個(gè)文件去保存數(shù)據(jù),這里說(shuō)一下 ,SD卡 用戶(hù)是可以訪問(wèn)的,也就是說(shuō)可以把一些可有可無(wú)的數(shù)據(jù)存在SD卡中,即使用戶(hù)刪除了卡中的內(nèi)容也不會(huì)影像軟件的使用。   
     
將文件在SD卡中刪除   
     
  1. public class loadSDActivity extends Activity {   
        public final static String FILE_NAME = "b.txt";   
        @Override   
        protected void onCreate(Bundle savedInstanceState) {   
            setContentView(R.layout.sdfile);   
            /**讀取內(nèi)容**/   
            String content = loadFile();   
            if(content == null) {   
                content ="上次沒(méi)有輸入內(nèi)容請(qǐng)輸入";   
            }   
               
            final EditText editContent = (EditText)findViewById(R.id.sdfile_et0);   
            editContent.setHint("上次輸入SD卡的內(nèi)容的為【 " +content + "】");   
            Button button0 = (Button)findViewById(R.id.sdfile_button0);   
               
            /**監(jiān)聽(tīng)按鈕點(diǎn)擊后保存用戶(hù)輸入信息到SD卡中**/   
            button0.setOnClickListener(new  OnClickListener() {   
                   
                @Override   
                public void onClick(View arg0) {   
                    /**拿到用戶(hù)輸入的信息**/   
                    String content = editContent.getText().toString();   
                    /**開(kāi)始保存入SD卡**/   
                    saveFile(content);   
                    ShowDialog("保存SD卡文件成功");   
                }   
            });   
            Button button1 = (Button)findViewById(R.id.sdfile_button1);   
               
            /**去清除SD卡保存的內(nèi)容**/   
            button1.setOnClickListener(new  OnClickListener() {   
                @Override   
                public void onClick(View arg0) {   
                    cleanFile();   
                    ShowDialog("清除SD卡文件中的內(nèi)容成功");   
                }   
            });           
            Button button2 = (Button)findViewById(R.id.sdfile_button2);   
               
            /**刪除SD卡保存的文件**/   
            button2.setOnClickListener(new  OnClickListener() {   
                @Override   
                public void onClick(View arg0) {   
                    DeleteSDFile();   
                }   
            });   
               
            super.onCreate(savedInstanceState);   
        }   
          
        /**   
         * 保存入SD卡中   
         * @param str   
         */   
        public void saveFile(String str) {   
            FileOutputStream fileOutputStream = null;   
       
            File file = new File(Environment.getExternalStorageDirectory(),   
                    FILE_NAME);   
            try {   
                fileOutputStream = new FileOutputStream(file);   
                fileOutputStream.write(str.getBytes());   
                fileOutputStream.close();   
            } catch (FileNotFoundException e) {   
                e.printStackTrace();   
            }catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
          
          
        /**   
         * 讀取SD卡的內(nèi)容   
         * @return   
         */   
        public String loadFile() {   
            String path = Environment.getExternalStorageDirectory() +"/" + FILE_NAME;   
            try {   
       
                FileInputStream fi = new FileInputStream(path);   
                BufferedReader br = new BufferedReader(new InputStreamReader(   
                        fi));   
                String readString = new String();   
                while ((readString = br.readLine()) != null) {   
                    //數(shù)據(jù)多的話須要在這里處理 readString   
                    return readString;   
                }   
                fi.close();   
            } catch (FileNotFoundException e) {   
                e.printStackTrace();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
       
            return null;   
        }   
          
        /**   
         * 刪除SD卡   
         */   
        public void DeleteSDFile() {   
            String path = Environment.getExternalStorageDirectory() + "/"   
                    + FILE_NAME;   
            File file1 = new File(path);   
            boolean isdelte = file1.delete();   
            if(isdelte) {   
                ShowDialog("刪除SD卡成功");   
            }else {   
                finish();   
            }   
        }   
          
        /**   
         * 因?yàn)閖ava刪除文件內(nèi)容只有一種實(shí)現(xiàn)方法,就是把整個(gè)文件重寫(xiě),只是把須要?jiǎng)h除的那一條記錄去除掉   
         */   
        public void cleanFile() {   
            //如果只須要?jiǎng)h除文件中的一部分內(nèi)容則須要在這里對(duì)字符串做一些操作   
            String cleanStr = "";   
            FileOutputStream fileOutputStream = null;   
       
            File file = new File(Environment.getExternalStorageDirectory(),   
                    FILE_NAME);   
            try {   
                fileOutputStream = new FileOutputStream(file);   
                fileOutputStream.write(cleanStr.getBytes());   
                fileOutputStream.close();   
            } catch (FileNotFoundException e) {   
                e.printStackTrace();   
            }catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
        public void ShowDialog(String str) {   
            AlertDialog.Builder builder = new AlertDialog.Builder(loadSDActivity.this);   
            builder.setIcon(R.drawable.icon);   
            builder.setTitle(str);   
            builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {   
                public void onClick(DialogInterface dialog, int whichButton) {   
                    finish();   
                }   
            });   
            builder.show();   
        }   
    }
復(fù)制代碼
  
  1. <?xml version="1.0" encoding="utf-8"?>   
       
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
            android:layout_width="fill_parent"   
            android:layout_height="fill_parent"   
            android:orientation="vertical"   
            >   
            <ImageView android:id="@+id/sdfile_image"   
                    android:layout_width="wrap_content"   
                     android:layout_height="wrap_content"   
                    android:src="@drawable/g"   
                    android:layout_gravity="center"   
                    />   
            <EditText android:id="@+id/sdfile_et0"   
                              android:layout_width="fill_parent"   
                          android:layout_height="wrap_content"   
                          android:hint="請(qǐng)輸入需要保存到SD卡的內(nèi)容">   
            </EditText>   
            <Button   android:id="@+id/sdfile_button0"   
                      android:layout_width="wrap_content"   
                          android:layout_height="wrap_content"   
                          android:text="保存輸入內(nèi)容到SD卡">   
            </Button>   
            <Button   android:id="@+id/sdfile_button1"   
                      android:layout_width="wrap_content"   
                          android:layout_height="wrap_content"   
                          android:text="清除SD卡保存文件的內(nèi)容">   
            </Button>   
            <Button   android:id="@+id/sdfile_button2"   
                      android:layout_width="wrap_content"   
                          android:layout_height="wrap_content"   
                          android:text="刪除SD卡中保存的文件">   
            </Button>   
    </LinearLayout>
復(fù)制代碼
最后如果你還是覺(jué)得我寫(xiě)的不夠詳細(xì) 看的不夠爽 不要緊我把源代碼的下載地址貼出來(lái)   
第七講數(shù)據(jù)的儲(chǔ)存與讀取.rar(312.88 KB, 下載次數(shù): 709)[/I]2011-9-2 23:51 上傳點(diǎn)擊文件名   下載積分: 下載豆 -2

上一篇:Android游戲開(kāi)發(fā)之多線程的操作方式(二十六)
下一篇:Android應(yīng)用程序框架層和系統(tǒng)運(yùn)行庫(kù)層日志系統(tǒng)源代碼分析

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書(shū) | 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-12-30 03:41 , Processed in 0.075251 second(s), 16 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表