欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发常见错误小结

程序员文章站 2022-11-05 15:23:24
本文实例总结了android开发的常见错误。分享给大家供大家参考。具体如下: 错误1: 在intent中添加了一个内容,在调用getstringextra读取的时候,总...

本文实例总结了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>控件内部而出现的错误,在设计中用来显示数据的控件,最好放在另外一个布局文件中。

比如说,我的listview的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" > 
  <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中,如下:

<?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的时候,动画效果是不对的。

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程序设计有所帮助。