您的位置:首页 > 移动开发 > Android开发

新手学习之android listView

2014-01-10 15:19 351 查看
做项目总是用到各种各样的listview,每次都要查找一番,所以写个模板,再复杂的只要变化一下就好了。

布局文件很简单,一个textView和listView:

<TextView

android:id="@+id/tv_line"

android:layout_width="match_parent"

android:layout_height="30dp"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true"

android:text="ListView模板"/>

<ListView

android:id="@+id/lv_line"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_alignParentLeft="true"

android:layout_marginTop="30dp" >

</ListView>

接下来看代码:

public class MainActivity extends Activity {

public MyAdapter myAdapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ListView lvLine = (ListView) this.findViewById(R.id.lv_line);

myAdapter = new MyAdapter();

lvLine.setAdapter(myAdapter);

}

public class MyAdapter extends BaseAdapter {

@Override

public int getCount() {

//显示listView的列数

return 10;

}

@Override

public Object getItem(int position) {

return position;

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

TextView tvLine = new TextView(getApplicationContext());

tvLine.setText("Hello");

return tvLine;

}

}

}

这样就好了,同时我想请教一个问题,我把声明listView的activity和listView的Adapter分别在两个class文件中写,布局文件也分成两个,怎么listView获取不到数据?

补充:listView点击高亮显示

在listView的点击事件里添加

sourceAdapter.setSelectItem(position);

sourceAdapter.notifyDataSetInvalidated();

然后在listView的Adapter中添加SelectItem方法:

private int selectItem = -1;

public void setSelectItem(int selectItem) {

this.selectItem = selectItem;

}

接着在getView方法中添加判断:
// 如果位置相同则设置背景为黄色

if (position == selectItem) {

tvLine.setBackgroundColor(Color.YELLOW);

} else {

tvLine.setBackgroundColor(Color.TRANSPARENT);

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: