当前位置:  编程技术>移动开发
本页文章导读:
    ▪实现带上拉跟下拉刷新功能的ListView        实现带上拉和下拉刷新功能的ListView package com.test.test; import java.util.ArrayList; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.view.Gravity; import android.view.View; import and.........
    ▪ 手机授命        手机指令  *#06#(显示IMEI号码)  *#1234#(显示当前固件)  * 2767 * 4387264636#(要显示产品代码)  * IMEI号*#272#*(显示/更改伪代码)  或*#272#* * HHMM  *#12580 * 369.........
    ▪ 编码轨范机制设计与分析       编码规范机制设计与分析 1.执行的代码中间绝对不会出现具体的数值。因为:    未来只要有可能发生变化的数值资源存入res/XML,实现代码外的修改。    铁定不会变的数值,用大写的单词.........

[1]实现带上拉跟下拉刷新功能的ListView
    来源: 互联网  发布时间: 2014-02-18
实现带上拉和下拉刷新功能的ListView
package com.test.test;

import java.util.ArrayList;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.test.test.CustomListView.OnAddFootListener;
import com.test.test.CustomListView.OnFootLoadingListener;
import com.test.test.CustomListView.OnRefreshListner;

public class TestActivity extends Activity {
    private CustomListView listview;
	private ArrayList<String> data;
	private BaseAdapter adapter;

	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        init();
        setListener();
    }
    
    
    private void init(){
        data = new ArrayList<String>();
		//虚拟一些数据
        data.add("a");
        data.add("b");
        data.add("c");
        data.add("e");
        data.add("f");
        data.add("g");
        data.add("h");
        data.add("i");
        data.add("j");
        data.add("k");
        data.add("L");
        data.add("M");
        data.add("L");
        data.add("N");
        data.add("O");
        data.add("P");
        data.add("Q");
        
        listview = (CustomListView) findViewById(R.id.listview);
        
        adapter = new BaseAdapter(){
			@Override
			public int getCount() {
				return data.size();
			}

			@Override
			public Object getItem(int position) {
				return null;
			}

			@Override
			public long getItemId(int position) {
				return position;
			}

			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				TextView textView = new TextView(getApplicationContext());
				textView.setHeight(100);
				textView.setTextSize(20);
				textView.setGravity(Gravity.CENTER);
				textView.setBackgroundColor(0x66666666);
				textView.setTextColor(0xaaffffff);
				textView.setText(data.get(position));
				return textView;
			}
        };
        listview.setAdapter(adapter);
    }
    
    private void setListener(){
    	listview.setOnRefreshListner(new OnRefreshListner() {
			@Override
			public void onRefresh() {
				new AsyncTask<Void, Void, ArrayList<String>>(){
					@Override
					protected ArrayList<String> doInBackground(Void... params) {
						try {
							//模拟从服务器获取数据的过程
							Thread.sleep(1500);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
						
						ArrayList<String> virtualData = new ArrayList<String>();
						virtualData.add("Head刷新后的新数据1");
						virtualData.add("Head刷新后的新数据2");
						virtualData.add("Head刷新后的新数据3");
						virtualData.add("Head刷新后的新数据4");
						virtualData.add("Head刷新后的新数据5");
						virtualData.add("Head刷新后的新数据6");
						
						return virtualData;
					}
					//更新UI的方法,系统自动实现
					@Override
					protected void onPostExecute(ArrayList<String> result) {
						data.addAll(0,result);//注意是往前添加数据
						adapter.notifyDataSetChanged();
						listview.onRefreshComplete();//完成下拉刷新,这个方法要调用
						super.onPostExecute(result);
					}
				}.execute();
			}
		});
        //创建FootView
        final View footer = View.inflate(TestActivity.this, R.layout.footer, null);
        listview.setOnAddFootListener(new OnAddFootListener() {
			@Override
			public void addFoot() {
				listview.addFooterView(footer);
			}
		});
        
        listview.setOnFootLoadingListener(new OnFootLoadingListener() {
			@Override
			public void onFootLoading() {
				new AsyncTask<Void, Void, ArrayList<String>>(){
					@Override
					protected ArrayList<String> doInBackground(Void... params) {
						try {
							//模拟从服务器获取数据的过程
							Thread.sleep(2000);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
						
						ArrayList<String> virtualData = new ArrayList<String>();
						virtualData.add("Foot刷新后的新数据1");
						virtualData.add("Foot刷新后的新数据2");
						virtualData.add("Foot刷新后的新数据3");
						virtualData.add("Foot刷新后的新数据4");
						virtualData.add("Foot刷新后的新数据5");
						virtualData.add("Foot刷新后的新数据6");
						return virtualData;
					}

					//在doInBackground后面执行
					@Override
					protected void onPostExecute(ArrayList<String> result) {	
						data.addAll(result);//这个是往后添加数据
						adapter.notifyDataSetChanged();
						listview.onFootLoadingComplete();//完成上拉刷新,就是底部加载完毕,这个方法要调用
						//移除footer,这个动作不能少
						listview.removeFooterView(footer);
						super.onPostExecute(result);
					}
				}.execute();
			}
		});
    }
}

 

 

package com.test.test;

import java.util.Date;

import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;

/**
 * 支持下拉刷新和上拉刷新
 * 可自定义上啦和下拉过程的操作,推荐使用AsyncTask
 * 需自定义Foot的View,然后只需在addFoot方法中添加即可
 * @author lxj
 *
 */
public class CustomListView extends ListView implements OnScrollListener {

	private static final int DONE = 0;
	private static final int PULL_TO_REFRESH = 1;
	private static final int RELEASE_TO_REFRESH = 2;
	private static final int REFRESHING = 3;
	private static final float RATIO = 3;// 用来设置实际间距和上边距之间的比例

	private int state;// 当前下拉刷新的状态

	private int firstVisibleIndex;// 在listview中第一个可以看见的item
	private View headView;
	private ImageView headArrow;
	private ProgressBar progressBar;
	private TextView headTitle;
	private TextView headLastUpdate;
	private int headContentWidth;
	private int headContentHeight;
	private Animation animation;
	private Animation reverseAnimation;
	private OnRefreshListner refreshListner;// 刷新监听器

	private boolean isRefreshable;
	private boolean isRecored = false;// 用来记录第一次按下坐标点,在整个滑动的过程中 只记录一次
	private float startY;
	private boolean isBack = false;// 是从 松开刷新状态 来到的 下拉刷新状态
	
	public CustomListView(Context context, AttributeSet attrs) {
		super(context, attrs);
		init(context);
	}

	private void init(Context context) {
		// listview 设置滑动时缓冲背景色
		setCacheColorHint(0x00000000);

		headView = View.inflate(context, R.layout.head, null);

		headArrow = (ImageView) headView.findViewById(R.id.head_arrow);
		progressBar = (ProgressBar) headView.findViewById(R.id.progressbar);
		headTitle = (TextView) headView.findViewById(R.id.head_title);
		headLastUpdate = (TextView) headView
				.findViewById(R.id.head_last_update);

		headArrow.setMinimumWidth(50);
		headArrow.setMinimumHeight(70);

		MeasureView(headView);
		
		headContentWidth = headView.getMeasuredWidth();
		headContentHeight = headView.getMeasuredHeight();

		headView.setPadding(0, -1*headContentHeight, 0, 0);
		// 为listView加入顶部View
		addHeaderView(headView);

		setOnScrollListener(this);

		animation = new RotateAnimation(-180, 0, Animation.RELATIVE_TO_SELF,
				0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
		animation.setDuration(250);
		animation.setFillAfter(true);// 设定动画结束时,停留在动画结束位置 (保留动画效果)
		animation.setInterpolator(new LinearInterpolator());// 匀速变化

		reverseAnimation = new RotateAnimation(0, -180,
				Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
				0.5f);
		reverseAnimation.setDuration(200);
		reverseAnimation.setFillAfter(true);// 设定动画结束时,停留在动画结束位置 (保留动画效果)
		reverseAnimation.setInterpolator(new LinearInterpolator());// 匀速变化

		// 设置当前headView的状态
		state = DONE;

		// 设置当前下拉刷新是否可用
		isRefreshable = false;
	}
	

	/**
	 * 测量headView的 宽高
	 * 
	 * @param child
	 */
	private void MeasureView(View child) {
		ViewGroup.LayoutParams lp = child.getLayoutParams();

		if (null == lp) {
			lp = new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT,
					LayoutParams.WRAP_CONTENT);
		}

		int measureChildWidth = ViewGroup.getChildMeasureSpec(0, 0, lp.width);
		int measureChildHeight;

		if (lp.height > 0) {
			measureChildHeight = MeasureSpec.makeMeasureSpec(lp.height,
					MeasureSpec.EXACTLY);
		} else {
			measureChildHeight = MeasureSpec.makeMeasureSpec(0,
					MeasureSpec.UNSPECIFIED);
		}

		child.measure(measureChildWidth, measureChildHeight);

	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {

		switch (event.getAction()) {
		case MotionEvent.ACTION_DOWN:
			if (firstVisibleIndex == 0 && !isRecored) {
				startY = event.getY();
				isRecored = true;
			}

			break;

		case MotionEvent.ACTION_MOVE:
			float tempY = event.getY();
			if (firstVisibleIndex == 0 && !isRecored) {
				startY = tempY;
				isRecored = true;
			}

			if (state != REFRESHING) {
				if (state == PULL_TO_REFRESH) {
					// 向下拉了 从下拉刷新的状态 来到 松开刷新的状态
					if ((tempY - startY) / RATIO >= headContentHeight
							&& (tempY - startY) > 0) {
						state = RELEASE_TO_REFRESH;

						changeHeadViewOfState();
					}
					// 向上推了 从下拉刷新的状态 来到 刷新完成的状态
					else if ((tempY - startY) <= 0) {
						state = DONE;

						changeHeadViewOfState();
					}

				} else if (state == RELEASE_TO_REFRESH) {
					// 向上推了 还没有完全将HEADVIEW 隐藏掉(可以看到一部分)
					// 从松开刷新的状态 来到 下拉刷新的状态
					if ((tempY - startY) / RATIO < headContentHeight
							&& (tempY - startY) > 0) {
						state = PULL_TO_REFRESH;

						changeHeadViewOfState();
						isBack = true;
					}
					// 向上推了 一下子推到了最上面 从松开刷新的状态 来到 刷新完成的状态 (数据不刷新的)
					else if ((tempY - startY) <= 0) {
						state = DONE;

						changeHeadViewOfState();
					}

				} else if (state == DONE) {
					// 刷新完成的状态 来到 下拉刷新的状态
					if ((tempY - startY) > 0) {
						state = PULL_TO_REFRESH;

						changeHeadViewOfState();
					}
				}

				if (state == PULL_TO_REFRESH) {
					headView.setPadding(
							0,
							(int) ((tempY - startY) / RATIO - headContentHeight),
							0, 0);
				}

				if (state == RELEASE_TO_REFRESH) {
					headView.setPadding(
							0,
							(int) ((tempY - startY) / RATIO - headContentHeight),
							0, 0);
				}

			}

			break;

		case MotionEvent.ACTION_UP:
			if (state != REFRESHING) {
				if (state == PULL_TO_REFRESH) {
					// 松手
					state = DONE;

					changeHeadViewOfState();
				}

				else if (state == RELEASE_TO_REFRESH) {
					// 松手
					state = REFRESHING;
					changeHeadViewOfState();

					// 执行数据刷新方法
					onRefresh();
				}
			}

			isRecored = false;
			isBack = false;

			break;
		}

		return super.onTouchEvent(event);
	}

	/**
	 * 执行下拉刷新
	 */
	private void onRefresh() {
		if (refreshListner != null) {
			refreshListner.onRefresh();
		}
	}

	/**
	 * HeadView的状态变化效果
	 */
	private void changeHeadViewOfState() {
		// 
		switch (state) {

		case PULL_TO_REFRESH:
			
			headArrow.setVisibility(View.VISIBLE);
			progressBar.setVisibility(View.GONE);
			headTitle.setVisibility(View.VISIBLE);
			headLastUpdate.setVisibility(View.VISIBLE);
			
			headArrow.clearAnimation();
			headTitle.setText("下拉可以刷新");
			//由 松开刷新  到  下拉刷新
			if(isBack){
				
				headArrow.startAnimation(animation);
				isBack = false;
			}

			break;

		case RELEASE_TO_REFRESH:
			
			headArrow.setVisibility(View.VISIBLE);
			progressBar.setVisibility(View.GONE);
			headTitle.setVisibility(View.VISIBLE);
			headLastUpdate.setVisibility(View.VISIBLE);
			
			headArrow.clearAnimation();
			headArrow.startAnimation(reverseAnimation);
			
			headTitle.setText("松开可以刷新");

			break;

		case REFRESHING:

			headArrow.setVisibility(View.GONE);
			progressBar.setVisibility(View.VISIBLE);
			headTitle.setVisibility(View.VISIBLE);
			headLastUpdate.setVisibility(View.VISIBLE);
			
			headArrow.clearAnimation();
			headTitle.setText("正在刷新...");
			
			headView.setPadding(0, 0, 0, 0);
			
			break;

		case DONE:
			
			headArrow.setVisibility(View.VISIBLE);
			progressBar.setVisibility(View.GONE);
			headTitle.setVisibility(View.VISIBLE);
			headLastUpdate.setVisibility(View.VISIBLE);
			
			headArrow.clearAnimation();
			headTitle.setText("下拉可以刷新");
			
			headView.setPadding(0, -1 * headContentHeight, 0, 0);

			break;
		}

	}

	private int lastPos;//最后一个可见的item的位置
	private int count;//item总数,注意不是当前可见的item总数
	private boolean hasFoot = false;//是否有了Foot
	@Override
	public void onScroll(AbsListView view, int firstVisibleItem,
			int visibleItemCount, int totalItemCount) {
		firstVisibleIndex = firstVisibleItem;
		lastPos = getLastVisiblePosition();
		count = totalItemCount;
		
		//因为刚进入的时候,lastPos=-1,count=0,这个时候不能让它执行onAddFoot方法
		if(lastPos==count-1 && !hasFoot && lastPos != -1){
			hasFoot = true;
			onAddFoot();
			Log.d("addFoot================","执行添加Foot....");
		}
		
		Log.d("count================", count+"");
		Log.d("lastPos================", lastPos+"");
	}

	@Override
	public void onScrollStateChanged(AbsListView view, int scrollState) {
		if(isFootLoading)
			return;
		
		if(hasFoot && scrollState==SCROLL_STATE_IDLE){
			isFootLoading = true;
			onFootLoading();
		}
	}

	/**
	 * 设置下拉刷新监听
	 * 
	 * @param listener
	 */
	public void setOnRefreshListner(OnRefreshListner listener) {
		// 设置下拉刷新可用
		isRefreshable = true;
		refreshListner = listener;

	}
	
	
	//执行底部加载
	public void onFootLoading(){
		if(footLoadingListener!=null && isFootLoading)
			footLoadingListener.onFootLoading();
	}
	
	public void setOnAddFootListener(OnAddFootListener addFootListener){
		onAddFootListener = addFootListener;
	}
	
	//执行添加foot
	public void onAddFoot(){
		if(onAddFootListener!=null && hasFoot)
			onAddFootListener.addFoot();
	}
	//是否添加Foot的监听器,如果写在OnFootLoadingListener中会有延迟,效果不好
	//应该是先进入添加Foot的状态,再进入FootLoading的状态
	public OnAddFootListener onAddFootListener;
	//是否进入从底部加载数据的状态的监听器
	public OnFootLoadingListener footLoadingListener;
	//正在加载底部数据
	private boolean isFootLoading = false;
	public void setOnFootLoadingListener(OnFootLoadingListener footLoading){
		footLoadingListener = footLoading;
	}

	/**
	 * 下拉刷新监听器
	 * @author lxj
	 *
	 */
	public interface OnRefreshListner {
		/**
		 * 下拉刷新的时候,在这里执行获取数据的过程
		 */
		void onRefresh();
	}
	
	/**
	 * 上拉刷新监听器
	 * @author lxj
	 *
	 */
	public interface OnFootLoadingListener{
		/**
		 * 这里是执行后台获取数据的过程
		 */
		void onFootLoading();
	}
	
	/**
	 * 添加Foot的监听器
	 * @author lxj
	 *
	 */
	public interface OnAddFootListener{
		/**
		 * 这里是用户addFootView的操作
		 */
		void addFoot();
	}
	
	/**
	 * 底部数据加载完成,用户需要加入一个removeFootView的操作
	 */
	public void onFootLoadingComplete(){
		hasFoot = false;
		isFootLoading = false;
	}

	/**
	 * 上拉刷新完成时 所执行的操作,更改状态,隐藏head
	 */
	public void onRefreshComplete() {
		state = DONE;
		changeHeadViewOfState();

		headLastUpdate.setText("最后刷新时间: " + new Date().toLocaleString());
	}

	@Override
	public void setAdapter(ListAdapter adapter) {

		headLastUpdate.setText("最后刷新时间: " + new Date().toLocaleString());
		
		super.setAdapter(adapter);
	}
}

 

footer.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:gravity="center" >
    
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         />
    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="10dip"
        android:text="正在加载中..."
        android:textSize="20sp"/>

</LinearLayout>

 head.xml

<?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="wrap_content"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp" >

        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true" >

            <ImageView
                android:id="@+id/head_arrow"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                 />

            <ProgressBar
                android:id="@+id/progressbar"
                
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:visibility="gone" />
        </FrameLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:gravity="center_horizontal"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/head_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="下拉可以刷新"
                android:textColor="#666666"
                android:textSize="20sp" />

            <TextView
                android:id="@+id/head_last_update"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="3dp"
                android:text="最后更新时间:"
                android:textColor="#666666"
                android:textSize="10sp" />
        </LinearLayout>
    </RelativeLayout>

</LinearLayout>

 main.xml

<?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" >

    <com.test.test.CustomListView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/listview" />

</LinearLayout>

 


    
[2] 手机授命
    来源: 互联网  发布时间: 2014-02-18
手机指令
 *#06#(显示IMEI号码)
  *#1234#(显示当前固件)
  * 2767 * 4387264636#(要显示产品代码)
  * IMEI号*#272#*(显示/更改伪代码)
  或*#272#* * HHMM
  *#12580 * 369#(软件&硬件信息)
  *#44336#(软件版本信息)

  复位:
  *#*#7780#*#*或*#7780#(厂软复位)
  * 2767 * 3855#(工厂硬复位的ROM固件默认设置)

  固件工具:
  *#2663#(固件更新)
  *#34971539#(相机固件更新)
  *#7412365#(相机固件菜单)
  或*#*#34971539#*#*
  *#03#(NAND快闪记忆体的S / N)的

  通用测试/调试:
  *#0 *#(综合测试模式)
  *#*#4636#*#*(诊断和模式一般设置)
  *#*#197328640#*#*(服务模式下的主菜单)
  *#7353#(快速测试菜单)

  无线:
  *#232337#(蓝牙地址)
  *#232331#(蓝牙测试模式)
  *#232338#(无线局域网MAC地址)
  *#232339#(WLAN测试模式)
  *#526#(无线局域网工程模式)
  *#528#(无线局域网工程模式)

  全球定位系统:
  *#1575#(GPS控制菜单)
  *#*#1472365 *#*#(GPS测试设置)

  传感器:
  *#0588#(接近传感器测试模式)
  *#0589#(光感应器测试模式)

  音频:
  *#0673#(音频测试模式)
  *#0283#(音频回传控制)
  *#0289#(旋律测试模式)

  按钮:
  *#7594#(重映射关机以结束通话)

  电池:
  *#0228#(电池状态:容量,电压,温度)

  其他测试/调试:
  *#32489#(通话加密信息)
  *#0842#(抑振电机测试模式)
  *#0782#(实时时钟测试)
  *#2263#(射频波段选择)
  *#9090#(诊断配置)
  *#7284#(I2C模式的USB控制)
  *#872564#(记录的USB控制)
  *#4238378#(GCF的配置)
  *#3214789650#(磅测试模式)
  *#745#(RIL的转储菜单)
  *#746#(调试转储菜单)
  *#9900#(系统转储模式)
  *#273283 * 255 * 3282 *#(数据创建菜单)
  *#273283 * 255 * 663282 *#(数据创建SD卡)
  *#3282 * 727336 *#(资料使用情况)
  *#80#(未知)
  *#07#(测试历史)
  *#3214789#(GCF的模式状态)
  *#272886#(自动应答选择)
  *#8736364#(OTA更新菜单)
  *#301279#(HSDPA / HSUPA的控制菜单)
  * 2767 * 4387264636#(出卖短信/ PCODE观点)
  *#7465625#(查看手机锁定状态)
  * 7465625 * 638 *#(配置网络锁定的MCC /跨国公司)
  #7465625 * 638 *#(插入网络锁密码)
  * 7465625 * 782 *#(配置网络锁定新型干法)
  #7465625 * 782 *#(插入Partitial网络锁定密码)
  * 7465625 * 77 *#(插入网络锁定密钥号码SP法)
  #7465625 * 77 *#(插入操作锁密码)
  * 7465625 * 27 *#(插入网络锁定密钥号码)
  #7465625 * 27 *#(插入内容提供商密码)

  谨慎使用!!
  1.出厂日期查询方法:
  进入拨号输入 *#197328640# 进工程模式;
  点菜单键再点Key Input输入值2;
  再点菜单键点Key Input输入值2;
  再点菜单键点Key Input输入值4;
  就可以看到cal date:显示出厂日期。
  2.看通话时间:
  *#*#4636#*#* 这是看通话时间的 在1分钟以内才是正常的
  3.测试有无锁三键:
  音量下键+HOME键+电源键,如果能出现机器人挖煤的动画,就是无锁三键,反之就是锁三键.
  4.测试有无网络锁
  *#7465625# 这是看是不是锁机 只要是OFF就是正常,如果第二项“network lock”值为"disable"表示无网络锁,值为"enable"表示有锁。
  5.识别机器的原产地
  在待机状态下,点击拨号键
  输入: *#272*串号#,然后进入产地
  6.屏幕检测:
  *#0*# 工程测试 买机必测
  第一行 三个原色测试
  第二行 1声音 2振动 3亮度降低
  第三行 1照相 2磁传感器 3触摸屏
  第四行 1休眠模式 2重力感应
  里面有“LCD TEST",按“RED”全屏显红色,按“green” 全屏显绿色,按“blue”显蓝色,如要返回测试菜单,请按中间的确认键,退出按挂机键。
  7.IMEI 码检验:
  输入 *#06# ,查看手机内存中的IMEI 码,记住这个号码,然后输入 *2767*3855# 进行i900码片复位,手机会自动重启,
  最后再输入 *#06# ,查看这个IMEI码有没有改变,如果这个号码与手机背贴、外包装盒上的 IMEI 码一致,且型号核准号码与手机型号一致 ,
  就证明是原厂正宗货。如果不一致,或者变成了一串乱码,则证明该手机要么是水改机,要么是翻新机。如果指令不被执行,则说明码片复位功能已被JS 屏蔽掉了。切记:此操作相当于硬启手机

    
[3] 编码轨范机制设计与分析
    来源: 互联网  发布时间: 2014-02-18
编码规范机制设计与分析

1.执行的代码中间绝对不会出现具体的数值。因为:

   未来只要有可能发生变化的数值资源存入res/XML,实现代码外的修改。

   铁定不会变的数值,用大写的单词和前缀public static final ,定义为类的私有变量,可以实现一处改,处处改。用于避免人在修改代码的时候修改这些final的变量,导致可能出现的多处数值不同步修改的情况

2.

1 楼 hssdw25172008 2013-10-02  
总结的很好~
2 楼 zzqnnu 2013-10-05  
hssdw25172008 写道
总结的很好~

不会这么背吧,第一条评论就在讽刺我了,悲剧哦

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android提高之MediaPlayer播放网络视频的实现方法... iis7站长之家
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3