Android開發tip

1.關閉鍵盤

//關閉鍵盤
InputMethodManager imm = (InputMethodManager) getSystemService(ActivityBusLine.INPUT_METHOD_SERVICE);       imm.hideSoftInputFromWindow(XXXview.getWindowToken(), 0);

2.TextView..EditText顯示一個tip

在使用EditText時可以使用setError來顯示一個tip來提示用戶
setError中傳入的參數是CharSequence類型,可以使用Android提供的Html

setError(Html.fromHtml("<font color=#E10979>生日格式不正確<br/>正確格式如1990-01-01</font>"));  

3.創建菜單OptionsMenu與上下文菜
每個Activity有且只有一個Options Menu,它爲整個Activity服務。而一個Activity往往有多個View,並不是每個View都有上下文菜單,這就需要我們顯示地通過registerForContextMenu(View view)來指定

菜單OptionsMenu:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        menu.add(0, 0, 0, "菜單1").setIcon(R.drawable.picture);
        menu.add(0, 1, 1, "菜單2").setIcon(R.drawable.picture);
        menu.add(0, 2, 2, "菜單3").setIcon(R.drawable.picture);
        menu.add(0, 3, 3, "菜單4").setIcon(R.drawable.picture);
        return super.onCreateOptionsMenu(menu);
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch(item.getItemId())
        {
            case 0:
            {
                break;
            }
            case 1:
            {
                break;
            }
            case 2:
            {
                break;
            }
            case 3:
            {           
                break;
            }
        }
        return true;
    }

上下文菜單

1.在activity的onCreate(...)方法中爲一個view註冊上下文菜單

2.在onCreateContextMenuInfo(...)中生成上下文菜單。

3.在onContextItemSelected(...)中響應上下文菜單項。

    @Override
    public boolean onContextItemSelected(MenuItem item) {
// getMenuInflater().inflate(R.menu.main, menu);
    switch(item.getItemId()){
            case 0:
            {
                //複製到剪切板
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
                String result =some data ;
                boardManager cbm=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
                cbm.setText(result);
                Toast.makeText(ActivityBusLine.this, "內容已複製到剪切板", Toast.LENGTH_SHORT).show();
                break;
            }
            case 1:
            {
                //發送短信     
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
                String result =some data ;
                Intent it = new Intent(Intent.ACTION_VIEW);       
                it.putExtra("sms_body", result);        
                it.setType("vnd.android-dir/mms-sms");       
                startActivity(it);
                break;
            }
        }
        return super.onContextItemSelected(item);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        menu.add(0, 0, 0, "複製到剪切板");
        menu.add(0, 1, 1, "短信發送");
        super.onCreateContextMenu(menu, v, menuInfo);
    }

4.私有io操作:Context對象操作io

openFileInput(String filename) 
打開應用程序私有目錄下的的指定私有文件以讀入數據,返回一個FileInputStream 對象
openFileOutput  
打開應用程序私有目錄下的的指定私有文件以寫入數據,返回一個FileOutputStream 對象,

如果文件不存在就創建這個文件。

fileList() 
搜索應用程序私有文件夾下的私有文件,返回所有文件名的String數組
deleteFile(String fileName) 刪除指定文件名的文件,成功返回true,失敗返回false

在使用openFileOutput方法打開文件以寫入數據時,需要指定打開模式。默認爲零,即MODE_PRIVATE。不同的模式對應的的含義如下:
openFileOutput方法打開文件時的模式

MODE_PRIVATE 
默認模式,文件只可以被調用該方法的應用程序訪問
MODE_APPEND  
如果文件已存在就向該文件的末尾繼續寫入數據,而不是覆蓋原來的數據。
MODE_WORLD_READABLE 
賦予所有的應用程序對該文件讀的權限。
MODE_WORLD_WRITEABLE  
賦予所有的應用程序對該文件寫的權限。

5.常用鍵值對
HashMap,ContentValues,org.apache.http.message.BasicNameValuePair等
Properties extends Hashtable

Properties properties = new Properties();
在類同級目錄裏
//InputStream localInputStream =XX.class
//          .getResourceAsStream("your.properties");
在app私有存儲位置
//FileInputStream stream = context.openFileInput("your.properties");

try {
        properties.load(localInputStream);
            return;
        } catch (IOException localIOException) {
            localIOException.printStackTrace();
        }

properties.getProperty("paramString")//獲取

properties.put("paramString", someString or object);//存儲

FileOutputStream stream = context.openFileOutput(
                    "your.properties", Context.MODE_WORLD_WRITEABLE);
            properties.store(stream, "");
發佈了50 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章