总结一些小细节 ---- Android

原创 2011年01月07日 15:17:00

1.Null pointer dereference of parent.getItemAtPosition(...) where null comes from constant

 

 

This error always happened in the build of spinner ,like this code:

 

Spinner spinner = (Spinner)findViewById(R.id.selectserver);


 ArrayAdapter adapterserver = new ArrayAdapter<String>(
                    this, android.R.layout.simple_spinner_item, keyServers);
adapterserver.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterserver);

spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
                @Override
                public void onItemSelected(AdapterView<?> parent, View arg1,
                    int postion, long id) {
                    String lastServer = null;
                    selectedServerName = parent.getItemAtPosition(postion).toString();

                }

}

 

We check these code ,and always we see it is fine,without any error when we making some build.

 

But by some complict rule, it will make the bug:"Null pointer dereference of parent.getItemAtPosition(...) where null comes from constant".

And then we will be confursed about this ,why this code had this error?

 

Fixed Method:

we can make one default value to be position's default value so that it can solve this error.

And use shareperference to store the data that you choose in the view.

 

Like:

spinner.setSelection(settings.getInt("ServerNumPosition", 0));
            spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
                @Override
                public void onItemSelected(AdapterView<?> parent, View arg1,
                    int postion, long id) {

 

            }

            editorse t tings.putInt("ServerNumPosition", postion);
            editorsettings.commit();

}

**************************************************************************

 

2.start and stop one service under /system/bin/  by apk method

 

Method1:

Make the apk's sharedUserId to be system.

AndroidManifest.xml

android:sharedUserId="android.uid.system"

 

In Java code:

import android.os.SystemProperties;

SystemProperties.set("ctl.start", "eCompassd");    // start the /system/bin/eCompassd

SystemProperties.set("ctl.stop", "eCompassd");    // stop the /system/bin/eCompassd

 

())()()()()()()()()()()()()()()()()()()()()()()()()()()()()

or use

Runtime.getRuntime().exec("/system/bin/eCompassd");    // stop the /system/bin/eCompassd

 

 

Method 2:

connect the socket with 127.0.0.1

and send command to service ,to stop it.

 

3. if you want to change the permisson of data directory in you apk application

 

you can use this:

Make you apk's sharedUserId to system,and Run command:

 

Runtime.getRuntime().exec("chmod 777 " + /data/);

 

4.in the init.rc file ,when you want to start one service from apk,then you can make this service to be "oneshot"

delay time in java ,you can use Thread.sleep(2222);

 

 

 

android 开发一些小细节

// 获取屏幕密度(方法1)               int screenWidth  =getWindowManager().getDefaultDisplay().getWidth();  ...
  • yuzhidao
  • yuzhidao
  • 2017年04月05日 18:04
  • 444

关于Java编程的一些小知识

Q:   int n=Integer.parseInt("+5");          int n=Integer.parseInt("123ABC");         编译时正常,解析时就报错了,...
  • NBXX2005
  • NBXX2005
  • 2005年01月13日 23:24
  • 562

Android:一些小总结

public class CalendarActivity extends Activity { ... static final int DAY_VIEW_MODE = 0; ...
  • ouyangtianhan
  • ouyangtianhan
  • 2011年11月11日 10:01
  • 715

C++一些小细节

一、Class 类 与#inlcude “类.h” 的区别class 类的使用,只是声明有这么一个类,但是没办法调用类里面的函数 。而#include则可以例如:#pragma once #inclu...
  • Snail_zhan
  • Snail_zhan
  • 2016年10月09日 16:07
  • 161

okHttp一些小细节

当无法连接服务器(连接错误、无网络等)时: 1.如果设置使用缓存,此时onResponse和onError都会相应 2.如果设置不使用缓存,则只会相应onError...
  • qq_23933981
  • qq_23933981
  • 2017年01月03日 11:24
  • 73

一些小细节

view是程序与用户交流的主要方式。 布局管理subviews 定义自己的resize行为管理一系列subviewsoverride  subviews的大小的位置转化自己的坐标系和window的坐标...
  • u011871552
  • u011871552
  • 2014年10月30日 16:10
  • 326

response一些小细节

通过观看房老师的教学视频,自己做了一些笔记。 1、response 向客户机输出数据。 2、字节流(outputStream)可以输出任何的数据,而字符流(writer)只能写字符数据 3、re...
  • u010256177
  • u010256177
  • 2013年07月17日 22:17
  • 497

MySQL一些小细节

细节一: Varchar从MySQL4.1开始,varchar (N)中的N指的是该字段最多能存储多少个字符(characters),不是字节数。 不管是一个中英文字符或者数字、或者一个汉字,都当做...
  • u014587769
  • u014587769
  • 2017年04月05日 10:13
  • 195

java的一些小程序例子--3

输入两个实数,按照从小到大的顺序输出这两个数 import java.util.Scanner;   public class b{  public static void main(Strin...
  • qq_24928451
  • qq_24928451
  • 2015年03月20日 18:38
  • 290

增量备份的一些小细节总结

哪些对象支持增量备份  If you specify INCREMENTAL, then in the backupSpec clause you must set one of the follow...
  • xuhan2011hd68
  • xuhan2011hd68
  • 2013年12月19日 19:01
  • 492
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:总结一些小细节 ---- Android
举报原因:
原因补充:

(最多只允许输入30个字)