标签:
本来今天是想着回顾一下以前的知识(把以前看过的简单东西做一做),然后兴致勃勃准备总结Adapter的用法,可是遇到第一个也是最简单的一个ArrayAdapter就已经撞到头破血流。。。
这篇也许对于像我一样的菜鸟比较适合吧。老司机可以略过!(眼高手低者可以看看,没准就有用了呢)
1、成员变量中直接 ListView lv_array=(ListView) findViewById(R.id.lv_array)看清楚是在成员变量中,这个错误我调了俩小时,过程就不说了。。。比较DT,后来仔细想了想,又仔细看了看才恍然大悟,在执行setContentView(R.layout.activity_main);之前怎么可能find其中的view呢?所以方法的调用先后顺序决定了findviewByID这个方法无法提前使用! 也就是说 老老实实在setContentView(R.layout.activity_main)之后
ListView lv_array=(ListView) findViewById(R.id.lv_array) 或者提前定义好 lv_array(在成员变量处声明)然后在后面赋值 lv_array=(ListView) findViewById(R.id.lv_array),只要findViewById()这个方法不在前面就行。
2、使用ArrayAdapter<String> adp=new ArrayAdapter<>(this, R.layout.v_arrayadapter, str);红色标记的指的是如下代码的文件:
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tv_array" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#0f0" android:text="wushuju" />
只是一个TextView的组件!强调一下 “只”,我的错误就在这个地方,很傻X地在一个linearlayout里写了一个textview,结果程序总是崩溃。(原来直接用的simpleAdapter,对这个没要求,所以就自然而然地错了)错误代码如下:
<?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" > <TextView android:id="@+id/tv_array" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#0f0" android:text="wushuju" /> </LinearLayout>
这个给我的教训就是,不去做,永远不知道会有什么坑在等着你!
杂谈就先到这里,继续爬坑!
标签:
原文地址:http://www.cnblogs.com/HongV/p/5594442.html