Android之常見問題集錦Ⅱ

Android問題集錦Ⅰ:http://www.cnblogs.com/AndroidJotting/p/4608025.html

EditText輸入內容改變事件監聽

_edit.addTextChangedListener
(new TextWatcher(){
            @Override
            public void afterTextChanged
(Editable s) {
                // TODO Auto-generated method stub
            
            }

            @Override
            public void beforeTextChanged
(CharSequence s, int start, int count,
                    int after) {
                // TODO Auto-generated method stub
                
            }

            @Override
            public void onTextChanged
(CharSequence s, int start, int before,
                    int count) {
                // TODO Auto-generated method stub
                //關鍵是這裏,監聽輸入的字符串,如果大於零,則可點擊,enable.
                if(s.length()>0){
                    _ok.setClickable(true);
                    _ok.setEnabled(true);
                }else{
                    _ok.setClickable(false);
                    _ok.setEnabled(false);
                }
            }
        });

在代碼中設置TextView的顏色

productState.setTextColor(context.getResources().getColor(R.color.product_value_price_color));
sql語句查詢某一時間段內的數據:date表示字段
select * from table where date between '2007-10-01' and '2008-10-01' 
或者
select * from table where date>'2007-10-01' and date<'2008-10-01' 
兩個區別不大,between包含了兩頭的日期,那個不包含

百度搜索框實現

http://www.baidu.com/s?wd=搜索內容&ie=utf-8

點擊ProgressDialog外的區域對話框不消失

ProgressDialog mpDialog = new ProgressDialog(OrderTable.this);  
mpDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//設置風格爲圓形進度條   
mpDialog.setTitle("提示");//設置標題   
mpDialog.setIcon(R.drawable.icon);//設置圖標   
mpDialog.setMessage("這是一個圓形進度條");   
mpDialog.setIndeterminate(false);//設置進度條是否爲不明確   

mpDialog.setCancelable(true);//設置進度條是否可以按退回鍵取消   

mpDialog.setCanceledOnTouchOutside(false);//設置點擊進度對話框外的區域對話框不消失 

mpDialog.show();

 File的mkdir() 和 mkdirs()

import java.io.*;
public class TestFile {
    
    public static void main(String[] args) throws Exception {
        File f = new File("e://xxx//yyy");
        System.out.println(f.mkdirs());//生成所有目錄
        //f.mkdir();  必須xxx目錄存在才能生成yyy目錄
        //f.createNewFile();
        
        File f2 = new File("E://zzz//t.txt"); //不能生成文件,只能用createNewFile();
        f2.createNewFile();   //且zzz目錄必須存在
    }
}

 TextView如何設置字體大小

 第一種方式:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/red"
    android:textSize="16sp" />    

第二種方式:

mTextView.setTextSize(14);

  需要注意的就是mTextView.setTextSize(14);是以float格式進行設置字體大小的,這一點一定要注意。

TextView如何設置文本內容換行顯示
<1>如果直接在XML文件中寫入"aaaaa\nbbbb"可以換行。
<2>在Java文件中用textViewObj.setText("aaaa\nbbbb")也可以換行。
<3>將數據封裝到模型類後,在Java文件中使用textViewObj.setText(obj.getXXX()).在android的模擬器界面上顯示沒有換行的"aaaaa\nbbbb",'\n'沒有轉義成換行。
解決辦法:
textView.setText(obj.getXXX().replace("\\n", "\n"));

Android軟鍵盤如何打開與關閉

 當我設計應用時,當需要用戶輸入時,用戶操作完成後如何關閉軟鍵盤呢:

InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

 上面這種方式存在一個小問題,當軟件盤已經打開的話,可以正常關閉軟鍵盤,但是當我們沒有調出軟鍵盤時,再執行這句話軟鍵盤就會被調出,查了很多資料沒有找到比較合適的判斷軟鍵盤是否打開的方法,下面提供一個新的方式,對於上面的問題可以很好的解決。

InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);                
imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);

 Android文件保存路徑問題

new File(Environment.getExternalStorageDirectory()+"文件名"+".jpg"//文件將被保存到sdCard根目錄下
new File(PathUtils.getPath(context) + "文件名" +"jpg");//文件將被保存的應用安裝目錄下

 android獲得手機屏幕高度和寬度

1、WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
  int width = wm.getDefaultDisplay().getWidth();
  int height = wm.getDefaultDisplay().getHeight();
 
2、WindowManager wm = this.getWindowManager();
  int width = wm.getDefaultDisplay().getWidth();
  int height = wm.getDefaultDisplay().getHeight();

 Android獲得控件的高度和寬度

TextView mTextView = (TextView) findViewById(R.id.text);
LayoutParams layoutParams = (LayoutParams) mTextView.getLayoutParams();
layoutParams.width = this.getWindowManager().getDefaultDisplay().getWidth();//先獲得屏幕的寬度
layoutParams.height = (this.getWindowManager().getDefaultDisplay().getWidth()/4)*3;//先獲得屏幕的長度
mTextView.setLayoutParams(layoutParams);
Android獲取本視頻文件的第一幀畫面
String path  = Environment.getExternalStorageDirectory().getPath();
MediaMetadataRetriever media = new MediaMetadataRetriever();
media.setDataSource(path+"/123.rmvb");
Bitmap bitmap = media.getFrameAtTime();
image = (ImageView)this.findViewById(R.id.imageView1);
image.setImageBitmap(bitmap);

Android在onCreate()中獲得控件尺寸

@Override 
  public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      final ImageView imageView = (ImageView) findViewById(R.id.imageview);       
      int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
      int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
      imageView.measure(w, h); 
      int height =imageView.getMeasuredHeight();
      int width =imageView.getMeasuredWidth();
      textView.append("\n"+height+","+width);
      System.out.println("執行完畢.."+System.currentTimeMillis()); 
  }
//------------------------------------------------方法一 
int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
imageView.measure(w, h); 
int height =imageView.getMeasuredHeight(); 
int width =imageView.getMeasuredWidth(); 
textView.append("\n"+height+","+width); 
//-----------------------------------------------方法二 
ViewTreeObserver vto = imageView.getViewTreeObserver(); 
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { 
    public boolean onPreDraw() { 
        int height = imageView.getMeasuredHeight(); 
        int width = imageView.getMeasuredWidth(); 
        textView.append("\n"+height+","+width); 
        return true; 
    } 
}); 
//-----------------------------------------------方法三    
ViewTreeObserver vto2 = imageView.getViewTreeObserver();   
vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override   
    public void onGlobalLayout() { 
        imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);   
        textView.append("\n\n"+imageView.getHeight()+","+imageView.getWidth()); 
    }   
});

如何設置ListView中每隔Item之間的間隔 

  開發中我們經常遇到使用ListView的情況,有時爲了更好的視覺效果,我需要設置一下每個Item的之間的間隔,這個如何設計呢?

android:divider="#cccccc"//分割線顏色
android:dividerHeight="1dp"//分割線高度

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章