本文实例总结了Android开发的常见错误。分享给大家供大家参考。具体如下:
错误1:
在intent中添加了一个内容,在调用getStringExtra读取的时候,总是报错。代码如下:
1
2
3
4
5
6
7
8
9
10
11
|
// 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方法。
读取代码如下:
1
2
3
4
5
6
7
8
|
@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>控件内部而出现的错误,在设计中用来显示数据的控件,最好放在另外一个布局文件中。
比如说,我的listview的xml为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<? 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" >
< Button
android:id = "@+id/btnInitData5000"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "初始化数据5000条" />
< Button
android:id = "@+id/btnInitListView"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "读取数据初始化ListView" />
< ListView
android:id = "@+id/listView4"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content" >
</ ListView >
</ LinearLayout >
|
listview的xml中只写listview的xml,而把每行要显示的内容,放在了myrow.xml中,如下:
1
2
3
4
5
6
7
8
9
|
<? 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 = "wrap_content" >
< TextView
android:id = "@+id/textViewItemName"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content" />
</ LinearLayout >
|
错误3:
从listview的一个item点击,跳转到另外一个activity的时候,动画效果是不对的。
1
2
3
4
5
|
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程序设计有所帮助。