您好,我正在开发一个 Android 项目,我在其中使用 ListView 来列出默认实体。我的 android 代码是这样的,我可以使用 falowing 代码获取项目列表,但我无法实现 onclicklisaner。如果单击列表项目,我希望出现一个消息框,但我无法执行此操作
package com.example.policadda;
public class Help {
private String title;
private String address;
private int iconID;
private String phonenumber;
private int callbutton;
public Help(String title, String address, int iconID ,String phonenumber) {
super();
this.title = title;
this.address = address;
this.iconID = iconID;
this.phonenumber= phonenumber;
}
public String getTitle() {
return title;
}
public String getAddress() {
return address;
}
public int getIconID() {
return iconID;
}
public String getphonenumber() {
return phonenumber;
}
}
package com.example.policadda;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Filter;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class MainHelp extends Activity {
EditText inputSearch;
TextView txtphonenumber;
ArrayList<HashMap<String, String>> productList;
private List<Help> myhelp = new ArrayList<Help>();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.help);
inputSearch = (EditText) findViewById(R.id.inputSearch);
populateComplaintList();
ArrayAdapter<Help> adapter = new MyListAdapter();
ListView List = (ListView) findViewById(R.id.helplistview);
List.setAdapter(adapter);
}
private void populateComplaintList() {
// TODO Auto-generated method stub
myhelp.add(new Help("kalasipalya","#12 subramanyapura mainroad",R.drawable.administration1,"7760576191"));
myhelp.add(new Help("kormangala","#12 subramanyapura mainroad",R.drawable.businessman157,"7760576191"));
myhelp.add(new Help("raghuvanahali","#12 subramanyapura mainroad",R.drawable.businessman158,"7760576191"));
myhelp.add(new Help("konankunte","#12 subramanyapura mainroad",R.drawable.administration1,"7760576191"));
myhelp.add(new Help("thatguni","#12 subramanyapura mainroad",R.drawable.administration1,"7760576191"));
myhelp.add(new Help("mayurilayout","#12 subramanyapura mainroad",R.drawable.administration1,"7760576191"));
myhelp.add(new Help("chunchghatta","#12 subramanyapura mainroad",R.drawable.administration1,"7760576191"));
}
private class MyListAdapter extends ArrayAdapter<Help>{
public MyListAdapter(){
super(MainHelp.this , R.layout.helpdesing , myhelp);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView = convertView;
if(itemView== null){
itemView = getLayoutInflater().inflate(R.layout.helpdesing, parent,false);
}
Help currenthelp = myhelp.get(position);
ImageView imageview = (ImageView) itemView.findViewById(R.id.item_icon);
imageview.setImageResource(currenthelp.getIconID());
TextView maketext = (TextView) itemView.findViewById(R.id.item_textTitle);
maketext.setText(currenthelp.getTitle());
TextView makeaddress= (TextView) itemView.findViewById(R.id.txtaddress);
makeaddress.setText(currenthelp.getAddress());
TextView makephonenumber =(TextView) itemView.findViewById(R.id.txtphonenumber);
makephonenumber.setText(currenthelp.getphonenumber());
return itemView;
}
}
}
最佳答案
试试这个; 在适配器类中的 getview 方法之后创建点击监听器,
public OnItemClickListener onItemClick = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position,
long arg3) {
Toast.makeText(v.getContext(), String.valueOf(position), Toast.LENGTH_SHORT).Show();
}
};
并如下设置监听器,
MyListAdapter adapter = new MyListAdapter();
ListView list = (ListView) findViewById(R.id.action_settings);
list.setAdapter(adapter);
list.setOnItemClickListener(adapter.onItemClick);
关于android - 无法在 android ListView 中实现 ClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29329359/