listview点击Item的传值跳转页⾯的实现和findViewByiId的
NullPo。。。
在最近的安卓项⽬开发中,我做⼀个listview点击任意⼀项实现跳转,虽然以前也是实现过,但这次实现的过程中遇到了⼏个⼩问题,但很棘⼿,花费1天时间调试并得以解决,现在总结如下:
安卓intent用法⾸先,listview点击Item响应传值跳转页⾯的实现:
第⼀页中的listview调⽤setOnItemClickListener⽅法,代码如下:listView.setOnItemClickListener(this);在这个类⾃动⽣成onItemClick⽅法,修改如下:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String tString = ((TextView)view. findViewById(R.id.diaryone_time)).getText().toString();//这⾥我的diaryone_time是我要传的值所在位置
Intent intent = new Intent(OneActivity.this, TwoActivity.class);
intent.putExtra("p", tString );//将传的值装⼊p中,p只是个随便起的标识符,你可以命名各种形式,在TwoActivity.class也有⽤到 startActivity(intent);
}
第⼆页中在onCreate⽅法中添加得到intent和相应传的值的代码,具体如下:
Intent intent = getIntent();
String position = StringExtra("p");//此处的p就是第⼀页装⼊的值的标识符,最终将第⼀页的tString赋值给这⼀页的position,成功传值
完毕。
其次,注意事项:
1.安卓开发时遇到字符串⽐较是否内容⼀致时,如果f字符串⾥有“\n”换⾏符,⽤“==”⽐较相等是⽆效的不能得出相等的情况,应该使⽤equals()函数;
2.提⽰在 String tString = ((TextView)view. findViewById(R.id.diaryone_time)).getText().toString();的NullPointerException空指向异常,正确情况是没有的,但是,我第⼀次R.id没有选择正确,不是listview采⽤的适配器中R.layout得到的View的中的标签id;通过调试发现错误后,知道了-----我们获取id对应的控件时要加载过这个id的页才能findViewById,⽽在这⾥这句是在适配器⾥加载过这个id的页了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论