android bug分析总结,Android开发常见错误小结

本文实例总结了Android开发的常见错误。分享给大家供大家参考。具体如下:

错误1:

在intent中添加了一个内容,在调用getStringExtra读取的时候,总是报错。代码如下:

// back按钮

Button btnBack = (Button) findViewById(R.id.btnActivity2Back);

btnBack.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent();

intent.putExtra("from", 2);

setResult(RESULT_OK, intent);

finish();

}

});

其中调用了intent的putExtra方法。

读取代码如下:

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

TextView tview = (TextView) findViewById(R.id.textViewResult1);

if (data != null) {

tview.setText("从" + data.getStringExtra("from") + "返回!");

}

super.onActivityResult(requestCode, resultCode, data);

}

调用了getStringExtra来读取数据。这里会报错。

错误原因:

在putExtra的时候,代码intent.putExtra("from", 2);中,2并不是一个字符串,而是一个数字。因此,在读取的时候,调用getStringExtra报错了。

如果这么写:intent.putExtra("from", 2 + "");就不会有问题。

错误2:

在做listview使用simplecursoradapter的时候,遇到下面的这个问题。

java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView

这个错误原因是我在main.xml布局文件中,将TextView控件包含在了控件内部而出现的错误,在设计中用来显示数据的控件,最好放在另外一个布局文件中。

比如说,我的listview的xml为:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/btnInitData5000"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="初始化数据5000条" />

android:id="@+id/btnInitListView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="读取数据初始化ListView" />

android:id="@+id/listView4"

android:layout_width="fill_parent"

android:layout_height="wrap_content" >

listview的xml中只写listview的xml,而把每行要显示的内容,放在了myrow.xml中,如下:

android:layout_width="match_parent"

android:layout_height="wrap_content" >

android:id="@+id/textViewItemName"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

错误3:

从listview的一个item点击,跳转到另外一个activity的时候,动画效果是不对的。

startActivity(intent);

// finish();

Log.e("mason", "gongneng ani called");

overridePendingTransition(R.anim.slide_out_right,

R.anim.slide_in_left);

如上面的代码。但是如果先调用finish()函数,动画效果就对了。但是此时有个问题。进入了新的activity之后,按back键,不能回到原来的activity了。这是因为原来的activity调用了finish函数,finish函数相当于用户按下了back键。相当于告诉了安卓系统,这个activity可以被回收了(此时在安卓activity栈中这个activity也不存在了)。

希望本文所述对大家的Android程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值