Java ListView onclicklistener图像
我有一个列表视图,每行有2个图像,我希望图像在单击时更改,但每次单击该项目时都会出错。 我设置了一个祝酒词,以确认我点击了正确的项目,并且效果良好。但最终我真正想要的是改变形象。 有没有关于如何让服务器以正确的方式设置它的建议Java ListView onclicklistener图像,java,android,listview,listadapter,Java,Android,Listview,Listadapter,我有一个列表视图,每行有2个图像,我希望图像在单击时更改,但每次单击该项目时都会出错。 我设置了一个祝酒词,以确认我点击了正确的项目,并且效果良好。但最终我真正想要的是改变形象。 有没有关于如何让服务器以正确的方式设置它的建议 公共类ListAdapter2扩展了ArrayAdapter实现 onclick侦听器{ 公共电话适配器2(){ super(AutomationSettings.this、R.layout.automationitems、Info); } @凌驾 公共视图getVi
公共类ListAdapter2扩展了ArrayAdapter实现
onclick侦听器{
公共电话适配器2(){
super(AutomationSettings.this、R.layout.automationitems、Info);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图自动_视图=转换视图;
ImageHolder=null;
if(Auto_View==null){
Auto_View=GetLayoutFlater()。充气(
R.layout.ms,父项,false);
支架=新的图像支架();
holder.item_auto_title=(TextView)auto_View
.findViewById(R.id.项目\自动\标题);
holder.item_auto_image1=(ImageView)auto_View
.findViewById(R.id.item\u auto\u image1);
holder.item_auto_image2=(ImageView)auto_View
.findViewById(R.id.item\u auto\u image2);
holder.item_auto_image1.setTag(R.id.item_auto_image1,holder);
holder.item_auto_image2.setTag(R.id.item_auto_image2,holder);
自动查看设置标签(支架);
}否则{
holder=(ImageHolder)Auto_View.getTag();
}
Auto_View.setOnClickListener(此);
Auto_Info CurrentItem=Info.get(位置);
holder.CurrentItem=CurrentItem;
Typeface TitleFont=Typeface.createFromAsset(getAssets(),
“providence.ttf”);
持有者。项目\自动\标题。设置字体(标题字体);
holder.item_auto_title.setText(CurrentItem.getAUTONAME());
holder.item_auto_image1.setOnClickListener(此);
holder.item_auto_image2.setOnClickListener(此);
返回自动视图;
}
@凌驾
公共void onClick(视图v){
ImageHolder=(ImageHolder)v.getTag();
if(v.getTag()==v.getTag(R.id.item\u auto\u image1)){
Toast t=Toast.makeText(AutomationSettings.this,“废话”,
吐司长度(长);
支架。项目自动图像1。设置背景资源(R.可绘制。bstoppedrunning);
t、 show();
}else if(v.getTag()==v.getTag(R.id.item\u auto\u image2)){
Toast t=Toast.makeText(AutomationSettings.this,“blah2”,
吐司长度(长);
t、 show();
}
}
静态类图像保持器{
公共自动信息当前项;
ImageView项目\u自动\u图像1;
ImageView项_auto_image2;
文本视图项目\自动\标题;
}
}
哪一行代码是第217行?支架.项目自动\u图像1.立根资源(R.可绘制.bstoppedrunning);确保在调用v.getTag()后holder不为null。ImageHolder是您的自定义类吗?我找不到这方面的文件。是的,我正在检查支架
07-08 15:19:43.371: E/AndroidRuntime(26277): FATAL EXCEPTION: main
07-08 15:19:43.371: E/AndroidRuntime(26277): java.lang.NullPointerException
07-08 15:19:43.371: E/AndroidRuntime(26277): at com.codalata.craigslistchecker.AutomationSettings$TheListAdapter2.onClick(AutomationSettings.java:217)
07-08 15:19:43.371: E/AndroidRuntime(26277): at android.view.View.performClick(View.java:2538)
07-08 15:19:43.371: E/AndroidRuntime(26277): at android.view.View$PerformClick.run(View.java:9158)
07-08 15:19:43.371: E/AndroidRuntime(26277): at android.os.Handler.handleCallback(Handler.java:587)
07-08 15:19:43.371: E/AndroidRuntime(26277): at android.os.Handler.dispatchMessage(Handler.java:92)
07-08 15:19:43.371: E/AndroidRuntime(26277): at android.os.Looper.loop(Looper.java:130)
07-08 15:19:43.371: E/AndroidRuntime(26277): at android.app.ActivityThread.main(ActivityThread.java:3704)
07-08 15:19:43.371: E/AndroidRuntime(26277): at java.lang.reflect.Method.invokeNative(Native Method)
07-08 15:19:43.371: E/AndroidRuntime(26277): at java.lang.reflect.Method.invoke(Method.java:507)
07-08 15:19:43.371: E/AndroidRuntime(26277): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
07-08 15:19:43.371: E/AndroidRuntime(26277): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
07-08 15:19:43.371: E/AndroidRuntime(26277): at dalvik.system.NativeStart.main(Native Method)
public class TheListAdapter2 extends ArrayAdapter<Auto_Info> implements
OnClickListener {
public TheListAdapter2() {
super(AutomationSettings.this, R.layout.automationitems, Info);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View Auto_View = convertView;
ImageHolder holder = null;
if (Auto_View == null) {
Auto_View = getLayoutInflater().inflate(
R.layout.automationitems, parent, false);
holder = new ImageHolder();
holder.item_auto_title = (TextView) Auto_View
.findViewById(R.id.item_auto_title);
holder.item_auto_image1 = (ImageView) Auto_View
.findViewById(R.id.item_auto_image1);
holder.item_auto_image2 = (ImageView) Auto_View
.findViewById(R.id.item_auto_image2);
holder.item_auto_image1.setTag(R.id.item_auto_image1, holder);
holder.item_auto_image2.setTag(R.id.item_auto_image2, holder);
Auto_View.setTag(holder);
} else {
holder = (ImageHolder) Auto_View.getTag();
}
Auto_View.setOnClickListener(this);
Auto_Info CurrentItem = Info.get(position);
holder.CurrentItem = CurrentItem;
Typeface TitleFont = Typeface.createFromAsset(getAssets(),
"providence.ttf");
holder.item_auto_title.setTypeface(TitleFont);
holder.item_auto_title.setText(CurrentItem.getAUTONAME());
holder.item_auto_image1.setOnClickListener(this);
holder.item_auto_image2.setOnClickListener(this);
return Auto_View;
}
@Override
public void onClick(View v) {
ImageHolder holder = (ImageHolder) v.getTag();
if (v.getTag() == v.getTag(R.id.item_auto_image1)) {
Toast t = Toast.makeText(AutomationSettings.this, "blah",
Toast.LENGTH_LONG);
holder.item_auto_image1.setBackgroundResource(R.drawable.bstoppedrunning);
t.show();
} else if (v.getTag() == v.getTag(R.id.item_auto_image2)) {
Toast t = Toast.makeText(AutomationSettings.this, "blah2",
Toast.LENGTH_LONG);
t.show();
}
}
static class ImageHolder {
public Auto_Info CurrentItem;
ImageView item_auto_image1;
ImageView item_auto_image2;
TextView item_auto_title;
}
}