listview点击Item的传值跳转页面的实现和findViewByiId的NullPointerException

在最近的安卓项目开发中,我做一个listview点击任意一项实现跳转,虽然以前也是实现过,但这次实现的过程中遇到了几个小问题,但很棘手,花费1天时间调试并得以解决,现在总结如下:

首先,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 = intent.getStringExtra("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的页了。


你可能感兴趣的:(Android)