11-30

来源:互联网 发布:报纸排版软件有哪些 编辑:程序博客网 时间:2024/05/02 04:40
Log.d() send a DEBUG log message
log.e() send a ERROR
log.i() send an INFO
log.v() send a VERBOSE
log.w() send a WARN

$ echo "Hello world" > hello 在当前目录创建一个文本文件hello 内容为Hello world 且覆盖该文本的所有内容 推荐文本首次创建时使用
$ echo "My test" >>hello 在hello文本中添加字符串

 获得Arrays中的字符数组String[] arraysMethod = mActivity.getResources().getStringArray(
                R.array.Input_method);
Button强制获取焦点
   public void onClick(View v) {
        if (!v.isFocused()) {
            v.requestFocus();
        }
        handle_saveconf(mToggleAutoState);
    }

Handler使用
延迟方法执行
mMainHandler.postDelayed(new Runnable() {
            public void run() {
                setApps(apps, true, false);
            }
        }, 0);

mHandler.removeCallbacksAndMessages(null);
mHandler.postDelayed(new Runnable() {
        public void run() {
              notifyValueChange(child, oldVal, newVal);
               }
}, mNotifyDelay);

使用工作线程中,looper

开一个工作Handler线程供其他Handler使用
 public static HandlerThread sTaskRunner = new HandlerThread(
            "Setting_Task_Runner");
    static {
        sTaskRunner.start();
    }

    private Handler mTaskHandler = new Handler(App.sTaskRunner.getLooper()) {
        public void handleMessage(Message msg) {
            switch (msg.what) {
            case GET_WALLPAPER:
                getWallpaper();
                return;
            case CHANGE_WALLPAPER:
                changeWallpaper(msg.arg1);
                return;
            }
        }
    };


按钮获得焦点
        mIpSaveBtn.setEnabled(state);
        mIpSaveBtn.setFocusable(state);
        mIpSaveBtn.setFocusableInTouchMode(state);

获取组件必须要抛的异常
       if (mAppIcon == null || mAppSize == null || mAppName == null    65
                            || mAppVersion == null || mAppTotalSize == null    66
                            || mAppDataSize == null || mAppCacheSize == null    67
                            || mForceStop == null || mUninstall == null || mClear == null    68
                            || mMoveApp == null | mProgressBar == null) {    69
                        throw new InflateException("Do you miss ga child?");    70
                    }

颜色
    17
    18    <resources>    <resources>    18
    19            19
                <color name="gray">#88888888</color>    20
    20        <color name="white">#ffffffff</color>        <color name="white">#ffffffff</color>    21
    21        <color name="black">#ff000000</color>        <color name="black">#ff000000</color>    22
    22        <color name="translucent">#38383838</color>        <color name="translucent">#38383838</color>    23
    23        <color name="transparent">#00000000</color>        <color name="transparent">#00000000</color>    24
                <drawable name="gray">#88888888</drawable>    25
                <drawable name="white">#ffffffff</drawable>    26
    24            27
    25    </resources>    </resources>


    private Handler mHandler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            super.handleMessage(msg);
            switch (msg.what) {
            case SHOW_MENU:
                showMainMenu(true);
                break;
            case HIDE_MENU:
                showMainMenu(false);
                break;
            }
        }

    };

    private void showMainMenu(boolean show) {
        if (show) {
            mHandler.removeMessages(HIDE_MENU);
            mHandler.sendEmptyMessageDelayed(HIDE_MENU, DELAYED_TIME);
        } else {
            finish();
        }
    }


onvaluechange接口中调用getcurrentvalue 没必要直接获取newval 0 ,1 pointItem中出现的问题 是由调用getcrrentvalue在回掉之后发生造成的


refreshDrawableState();

必须设置自己
    public IpTextViewLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        setOnClickListener(this);
    }

view.isInTouchMode()view是否在tochmode里边 遥控器enter执行到onclick方法中?
static变量在android中 Activity重启后static 变量不会再被初始化:语言设置改变语言环境后重启setting 根据headers中的static变量记忆最后一次点击了哪个header,达到重启setting焦点记忆不移动的目的。

重写requestForcus方法解决ontouchmode焦点问题


启动activity的方式
 public static boolean startActivity(Context context, Intent intent) {
        if (intent == null) {
            return false;
        }

        try {
            context.startActivity(intent);
            return true;
        } catch (ActivityNotFoundException e) {
            e.printStackTrace();
        }
        return false;
    }

    public static boolean startActivity(Context context, String action) {
        if (action == null || action.length() == 0) {
            return false;
        }

        return startActivity(context, new Intent(action));
    }

    public static boolean startActivity(Context context, String pkg, String cls) {
        if (pkg == null || pkg.length() == 0 || cls == null
                || cls.length() == 0) {
            return false;
        }

        final Intent intent = new Intent();
        intent.setClassName(pkg, cls);
        return startActivity(context, intent);
    }

    public static boolean startActivity(Context context, ComponentName cpn) {
        if (cpn == null) {
            return false;
        }

        final Intent intent = new Intent();
        intent.setComponent(cpn);
        return startActivity(context, intent);
    }

    public static boolean startActivity(Context context, AppInfo app) {
        if (app == null) {
            return false;
        }

        return startActivity(context, app.cpnName);
    }

    public static boolean startActivityForPickApp(Context context, int category) {
        try {
            final Intent intent = new Intent(context, AppsActivity.class);
            intent.putExtra(AppsActivity.EXT_MODE,
                    AppsActivity.MODE_PICK_ONE_APP);
            intent.putExtra(AppsActivity.EXT_CATEGORY, category);
            if (context instanceof Activity) {
                ((Activity) context).startActivityForResult(intent,
                        Launcher.REQ_CODE_PICK_ONE_APP);
                return true;
            } else {
                context.startActivity(intent);
                return true;
            }
        } catch (ActivityNotFoundException e) {
            e.printStackTrace();
        }
        return false;
    }

    public static boolean startActivityForPickWidget(Context context,
            int widgetId) {
        try {
            final Intent intent = new Intent(
                    AppWidgetManager.ACTION_APPWIDGET_PICK);
            intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);
            if (context instanceof Activity) {
                ((Activity) context).startActivityForResult(intent,
                        Launcher.REQ_CODE_PICK_ONE_WIDGET);
                return true;
            } else {
                context.startActivity(intent);
                return true;
            }
        } catch (ActivityNotFoundException e) {
            e.printStackTrace();
        }
        return false;
    }


重启系统的setting
130|shell@android:/data/data/com.togic.settings # ll
system    6725  6339  542192 44364 ffffffff 400113c0 S com.togic.settings
app_8     6830  6339  433680 17796 ffffffff 400113c0 S com.android.providers.calendar
kshell@android:/data/data/com.togic.settings # kill 6725


接activity生命周期的办法
    public void onResume() {
        mTv.onResume();
    }

onLayout 在onresume方法执行之后再执行 解决电视flash问题
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
        super.onLayout(changed, l, t, r, b);
        LogUtil.d("changed=============================================="+changed);
        if(changed){
            prepareTv2();
        }
    }  

mHandler.removeCallbacks(null);只能移除post提交的runnable
mHandler.removeMessages(MSG_UPDATE_SURFACE);  移除sendMessageDelayed提交的MSG_UPDATE_SURFACE

修复Ip连删 DEL事件只捕获按键抬起时事件,则必须先返回按键按下事件。
if (event.getAction() == KeyEvent.ACTION_DOWN) {
            return super.dispatchKeyEvent(event);
        }
        if (event.getKeyCode() == KeyEvent.KEYCODE_DEL) {
            final int count = this.getChildCount();
            View child;
            IpTextView ipText = null;
            IpTextView preIpText = null;
            int focusItem = 0;

            for (int i = count - 1; i >= 0; i--) {
                child = getChildAt(i);
                if (child instanceof IpTextView) {
                    ipText = (IpTextView) child;
                    if ((ipText.length() == 0) && ipText.isFocused()) {
                        if (i - PRE_MOVE_STEP >= 0) {
                            focusItem = i;
                            mMovePreable = !mMovePreable;
                        }
                    }
                }
            }
            if (focusItem != 0 && mMovePreable) {
                mMovePreable = true;
                preIpText = (IpTextView) getChildAt(focusItem - 2);
                if (preIpText.hasFocusable()) {
                    preIpText.requestFocus();
                }
            }
        }

        return super.dispatchKeyEvent(event);
    }