异常和点击颜色
mLvFoods.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
_id = c.getString(0);
view.setBackgroundColor(Color.BLUE);
if(lastPosition!=-1){
mLvFoods.getChildAt(lastPosition).setBackgroundColor(Color.WHITE);
}
lastPosition=position;
}
});
case R.id.btn_delete:
dao.delete(_id);
c.requery();
adapter.notifyDataSetChanged();
lastPosition=-1;
Toast.makeText(this,"已删除",Toast.LENGTH_SHORT).show();
break;
此处点了一次1菜品
这个是点击触发异常的。
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.sqldemo, PID: 13412
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setBackgroundColor(int)' on a null object reference
at com.example.sqldemo.MainActivity$2.onItemClick(MainActivity.java:55)
1、我添加了10个之后 点前面的菜品没有问题 但是往下划,也有个菜品也变颜色了。
2、我划到ListView下面的内容(就是程序一进去时看不到的那部分),点那几个会触发异常
请问这两个怎么解决?
正在回答 回答被采纳积分+1
问题解决了。
创建一个seletor
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorAccent"
android:state_pressed="true" />//被点击
</selector>
在item最外层布局加个
android:background="@drawable/selector"
最后在item点击事件加个
view.setPressed(true);//改变颜色
结束,谢谢老师指导。
点了次0 再点别的菜品就会崩溃
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.sqlitedemo, PID: 17556
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setBackgroundColor(int)' on a null object reference
at com.example.sqlitedemo.MainActivity$2.onItemClick(MainActivity.java:60)
at android.widget.AdapterView.performItemClick(AdapterView.java:330)
at android.widget.AbsListView.performItemClick(AbsListView.java:1187)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3179)
at android.widget.AbsListView$3.run(AbsListView.java:4097)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7478)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
- 参与学习 人
- 提交作业 220 份
- 解答问题 1800 个
本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星