Android开发常见错误小结

前端技术 2023/09/02 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>控件内部而出现的错误,在设计中用来显示数据的控件,最好放在另外一个布局文件中。

比如说,我的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程序设计有所帮助。

本文地址:https://www.stayed.cn/item/3888

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。