(1)error opening trace file: No such file or directory (2)
这是写的第一个程序就出现的问题,而且查询代码没有发现错误。google后得出结论:模拟器版本和android的API版本不对应,相应的进行修改就行。
(2)出现java.lang.NumberFormatException: unable to parse 'null' as integer
出现问题查出错误出在上面代码中intent传回来的值有可能是null,就会产生转换的错误,最终修改方案是加入异常处理机制,就是使用try and catch。修改后程序运行正常。代码如下:
public class otheractivity extends Activity{
private TextView textview2 = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other);
textview2 = (TextView)findViewById(R.id.TextView2);
int oneint = 0;
int twoint = 0;
Intent intent2 = getIntent();
String onestr = intent2.getStringExtra("one");
String twostr = intent2.getStringExtra("two");
try{
oneint = Integer.parseInt(onestr);
}
catch(Exception e){}
try{
twoint = Integer.parseInt(twostr);
}
catch (Exception e) {
// TODO: handle exception
}
int res = oneint + twoint;
String resstr = String.valueOf(res);
textview2.setText(resstr);
}
}
问题就迎刃而解了。
(3)用一个监听器实现多个按钮的onclick监听。
示例代码如下:
public class SensorActivity extends Activity {
private Button button1 = null;
private Button button2 = null;
private Button button3 = null;
private Button button4 = null;
private Button button5 = null;
private Button button6 = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sensor);
button1 = (Button)findViewById(R.id.button1);
button2 = (Button)findViewById(R.id.button2);
button3 = (Button)findViewById(R.id.button3);
button4 = (Button)findViewById(R.id.button4);
button5 = (Button)findViewById(R.id.button5);
button6 = (Button)findViewById(R.id.button6);
button1.setOnClickListener(new MyButtonlistener());
button2.setOnClickListener(new MyButtonlistener());
button3.setOnClickListener(new MyButtonlistener());
button4.setOnClickListener(new MyButtonlistener());
button5.setOnClickListener(new MyButtonlistener());
button6.setOnClickListener(new MyButtonlistener());
}
class MyButtonlistener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int i[] = new int[6];
for(int j = 0;j<6;j++){
i[j]=j;
}
HashMap<Button,Integer> bf = new HashMap<Button, Integer>(6);
bf.put(button1, i[0]);
bf.put(button2, i[1]);
bf.put(button3, i[2]);
bf.put(button4, i[3]);
bf.put(button5, i[4]);
bf.put(button6, i[5]);
//Intent intent[] = new Intent[6];
Intent intent1 = new Intent();
Intent intent2 = new Intent();
Intent intent3 = new Intent();
Intent intent4 = new Intent();
Intent intent5 = new Intent();
Intent intent6 = new Intent();
//intent[0].setClass(SensorActivity.this, Sensor1.class);
//intent[1].setClass(SensorActivity.this, Sensor2.class);
//intent[2].setClass(SensorActivity.this, Sensor3.class);
//intent[3].setClass(SensorActivity.this, Sensor4.class);
//intent[4].setClass(SensorActivity.this, Sensor5.class);
//intent[5].setClass(SensorActivity.this, Sensor6.class);
intent1.setClass(SensorActivity.this, Sensor1.class);
intent2.setClass(SensorActivity.this, Sensor2.class);
intent3.setClass(SensorActivity.this, Sensor3.class);
intent4.setClass(SensorActivity.this, Sensor4.class);
intent5.setClass(SensorActivity.this, Sensor5.class);
intent6.setClass(SensorActivity.this, Sensor6.class);
Button button = (Button)v;
int num = bf.get(button);
switch (num) {
case 0:
SensorActivity.this.startActivity(intent1);
break;
case 1:
SensorActivity.this.startActivity(intent2);
break;
case 2:
SensorActivity.this.startActivity(intent3);
break;
case 3:
SensorActivity.this.startActivity(intent4);
break;
case 4:
SensorActivity.this.startActivity(intent5);
break;
case 5:
SensorActivity.this.startActivity(intent6);
break;
default:
break;
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, 1, 1, R.string.exit);
menu.add(0, 2, 2, R.string.about);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if(item.getItemId()==1){
finish();
}
return super.onOptionsItemSelected(item);
}
}
关键在于用hashmap将控件与整数对应,然后进行选择。
(4)在同一个activity中使用两个或两个以上的传感器。
在同一个activity中使用多个传感器时,只需要声明一个sensormanager就可以了。但是每个传感器实例都需要单独声明。
监听器可以只使用一个监听器。
具体示例如下:(以两个传感器为例)
private SensorManager sm_gyroscope;
private Sensor my_gyroscope;
private Sensor my_rotation;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sensor4)
sm_gyroscope = (SensorManager)getSystemService(SENSOR_SERVICE);
my_gyroscope = sm_gyroscope.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
my_rotation = sm_gyroscope.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR);
}
private class Mysensorlistener implements SensorEventListener{
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
int temp1 = 0,temp2 = 0;
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
if(event.sensor.getType() == Sensor.TYPE_GYROSCOPE){
//此处添加代码
}
}
if(event.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR){
//此处添加代码
}
}
}
}
Mysensorlistener mylistener = new Mysensorlistener();
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
sm_gyroscope.unregisterListener(mylistener);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
sm_gyroscope.registerListener(mylistener, my_gyroscope, SensorManager.SENSOR_DELAY_NORMAL);
sm_gyroscope.registerListener(mylistener, my_rotation, SensorManager.SENSOR_DELAY_NORMAL);
}
相关推荐
在Android中,当使用Nine-Patch图片资源时,如果图片没有正确地标记边缘区域,就会出现“Nomarkedregionfoundalongedge”这样的错误。 **解决方案**: - 使用Android Studio自带的Nine-Patch工具(`nineoldandroids...
本资源“android开发问题集锦”包含了五个PDF文档,旨在为初学者提供详尽的问题解答和解决方案,帮助他们快速理解和解决实际开发中的困扰。 1. **布局与UI设计**: - 布局嵌套过深可能导致性能问题,学习使用...
Android开发问题集锦16集合
首先,文件中提到“Android开发问题集锦 情人节特刊”,表明这是一份集合了多个Android开发问题和解答的特辑,旨在帮助开发者在情人节这一天提升技能,同时也有助于面试和笔试准备。 文件中提到的标签“android ...
总结起来,"Android开发问题集锦1到6期"涵盖的内容广泛,对于每一个专题,开发者都需要深入学习和实践,以便在实际项目中能够迅速定位并解决问题。不断积累经验,跟踪最新的开发工具和技术趋势,是成为一名优秀...
### Android开发问题集锦第六期知识点详解 #### 一、MapView不渲染变成空白和灰色网格了? 在Android开发过程中,有些开发者遇到了`MapView`不渲染的情况,而是出现了一个白色的背景和灰色的网格。这一问题主要...
本文将深入探讨在"android开发游戏技巧集锦"中所涵盖的一些核心知识点,旨在为初入此领域的开发者提供宝贵的指导。 首先,理解Android游戏的基础架构至关重要。游戏通常由用户界面(UI)、游戏逻辑、渲染引擎和资源...
### Android开发问题集锦第五期知识点详解 #### 一、Android平台显示单位px和dip以及sp的区别 在Android开发中,了解不同单位的意义是非常重要的,因为不同的单位可以帮助开发者更好地控制用户界面在不同屏幕尺寸...
在Android中,`managedQuery`和`query`都是用于查询数据库的方法,但它们存在一定的区别。 **1. managedQuery与query的不同** - **managedQuery**:这是一个由`Activity`类提供的方法,用于查询内容提供者(Content...
7. **组件间通信**:Intent是Android中组件间通信的主要方式,文件可能介绍如何通过Intent传递数据,以及如何启动服务、活动等。 8. **性能优化**:集锦可能涵盖了内存优化、渲染性能优化、电量管理、APK瘦身等实践...
【Android开发问题集锦第一期】包含了多个关于Android开发中常见问题的解答,这些问题涵盖了图像处理、内存管理、Java特性的支持以及系统组件的使用等多个方面。以下是对这些问题的详细解释: 1. **Bitmap如何保存...
Android 开发问题集锦第一期涵盖了多个常见的Android开发难题,以下是对这些问题的详细解释: 问题一:Bitmap如何保存成为一个bmp文件 在Android中,Bitmap对象默认的压缩格式仅支持PNG和JPEG。要将Bitmap保存为BMP...
### Android开发问题集锦第一期知识点详解 #### 一、Bitmap如何保存成为一个bmp文件 **问题背景**: 在Android开发过程中,Bitmap对象是用于处理图像的重要类。然而,开发者可能会遇到一个问题,即如何将Bitmap...
《Android课程设计集锦》是针对Android开发学习者的一份宝贵资源,涵盖了多个层次和方面的Android应用开发知识。这份资料集合旨在帮助学生和初学者深入理解Android平台,并通过实际项目练习提升技能。以下是对其中...
Python项目开发案例集锦.rar
在Android中,这种图标可以用于自定义应用的导航栏、工具栏或者快速操作按钮,使用户能够直观理解各个功能。 3. **Android界面小图片大全**: 这部分素材可能包含了各种尺寸的小图片,适用于不同屏幕密度(ldpi, ...
在Android开发过程中,遇到错误是常见的情况,这些错误可能源于各种不同的原因,下面将详细解析这些Android错误及其解决方案。 1. 错误信息:“Failed to install Info.apk on device '?': Unable to open sync ...
非常难得的开发实例集合,常用系统控件界面大合集。listview的综合实例大全
《Android面试题集锦》是为准备Android开发者面试者精心整理的一份资料,它涵盖了从基础知识到高级技术的多个方面,旨在帮助求职者全面了解并掌握Android开发领域所需的关键技能。这份资料的主要内容包括但不限于...