zoukankan      html  css  js  c++  java
  • 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 bbbb"可以换行。
    <2>在Java文件中用textViewObj.setText("aaaa bbbb")也可以换行。
    <3>将数据封装到模型类后,在Java文件中使用textViewObj.setText(obj.getXXX()).在android的模拟器界面上显示没有换行的"aaaaa bbbb",' '没有转义成换行。
    解决办法:
    textView.setText(obj.getXXX().replace("\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("
    "+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("
    "+height+","+width); 
    //-----------------------------------------------方法二 
    ViewTreeObserver vto = imageView.getViewTreeObserver(); 
    vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { 
        public boolean onPreDraw() { 
            int height = imageView.getMeasuredHeight(); 
            int width = imageView.getMeasuredWidth(); 
            textView.append("
    "+height+","+width); 
            return true; 
        } 
    }); 
    //-----------------------------------------------方法三    
    ViewTreeObserver vto2 = imageView.getViewTreeObserver();   
    vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
        @Override   
        public void onGlobalLayout() { 
            imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);   
            textView.append("
    
    "+imageView.getHeight()+","+imageView.getWidth()); 
        }   
    });

    如何设置ListView中每隔Item之间的间隔 

      开发中我们经常遇到使用ListView的情况,有时为了更好的视觉效果,我需要设置一下每个Item的之间的间隔,这个如何设计呢?

    android:divider="#cccccc"//分割线颜色
    android:dividerHeight="1dp"//分割线高度
  • 相关阅读:
    css表格单元格间距设置
    JavaScript(js)设置输入焦点(focus)
    让div居中的方法
    Window.open()的使用
    getElementsByTagName的用法
    offsetTop获取top值
    js中indexof的使用
    jquery解析json数据
    iframe的使用
    WCF学习笔记Ⅲ
  • 原文地址:https://www.cnblogs.com/AndroidJotting/p/4777752.html
Copyright © 2011-2022 走看看