Android 在自定义列表视图中添加项目ClickListener,例如(文本视图、图像、按钮)
我们是否可以在自定义列表视图中添加项ClickListener,例如(文本视图、图像、按钮)?Android 在自定义列表视图中添加项目ClickListener,例如(文本视图、图像、按钮),android,listview,Android,Listview,我们是否可以在自定义列表视图中添加项ClickListener,例如(文本视图、图像、按钮)? 如果有的话?然后,在编写侦听器代码的地方,您可以在自定义ListView中定义的项目上添加onClickListener。请参阅下面的代码 holder.txtIncident.setOnClickListener public View getView(final int position, View convertView, ViewGroup parent) {
如果有的话?然后,在编写侦听器代码的地方,您可以在自定义ListView中定义的项目上添加onClickListener。请参阅下面的代码 holder.txtIncident.setOnClickListener
public View getView(final int position, View convertView,
ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.headline_item, null);
holder = new ViewHolder();
holder.txtIncident = (TextView) convertView
.findViewById(R.id.txtIncident);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtIncident.setText(String.valueOf(itemList.get(position)
.getIncident()));
holder.txtIncident.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
return convertView;
}
您可以在自定义ListView中定义的项目上添加onClickListeners。请参阅下面的代码 holder.txtIncident.setOnClickListener
public View getView(final int position, View convertView,
ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.headline_item, null);
holder = new ViewHolder();
holder.txtIncident = (TextView) convertView
.findViewById(R.id.txtIncident);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtIncident.setText(String.valueOf(itemList.get(position)
.getIncident()));
holder.txtIncident.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
return convertView;
}
可以,您可以为每个列表项中的组件创建侦听器。可以通过创建自定义列表适配器并在其getView方法中设置侦听器来实现这一点
public class MyAdapter extends ArrayAdapter<String> {
private int resourceId;
private String[] objects;
public MyAdapter(Context context, int resourceId, String[] objects) {
super(context, resourceId,objects);
this.resourceId = resourceId;
this.objects = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(resourceId, null);
}
//Make sure that you use convertView.findViewById and not just findViewById!
TextView textView1 = convertView.findViewById(R.id.yourTextViewsId);
textView1.setText(objects[position]);
textView1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
//do something here
}
});
return convertView;
}
}
公共类MyAdapter扩展了ArrayAdapter{
私有资源ID;
私有字符串[]对象;
公共MyAdapter(上下文上下文、int-resourceId、字符串[]对象){
超级(上下文、资源ID、对象);
this.resourceId=resourceId;
this.objects=对象;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
LayoutFlater充气机=(LayoutFlater)getSystemService(布局充气机服务);
convertView=充气机。充气(resourceId,null);
}
//确保使用convertView.findViewById,而不仅仅是findViewById!
TextView textView1=convertView.findViewById(R.id.yourTextViewsId);
textView1.setText(对象[位置]);
textView1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//在这里做点什么
}
});
返回视图;
}
}
是的,您可以为每个列表项中的组件创建侦听器。可以通过创建自定义列表适配器并在其getView方法中设置侦听器来实现这一点
public class MyAdapter extends ArrayAdapter<String> {
private int resourceId;
private String[] objects;
public MyAdapter(Context context, int resourceId, String[] objects) {
super(context, resourceId,objects);
this.resourceId = resourceId;
this.objects = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(resourceId, null);
}
//Make sure that you use convertView.findViewById and not just findViewById!
TextView textView1 = convertView.findViewById(R.id.yourTextViewsId);
textView1.setText(objects[position]);
textView1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
//do something here
}
});
return convertView;
}
}
公共类MyAdapter扩展了ArrayAdapter{
私有资源ID;
私有字符串[]对象;
公共MyAdapter(上下文上下文、int-resourceId、字符串[]对象){
超级(上下文、资源ID、对象);
this.resourceId=resourceId;
this.objects=对象;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
LayoutFlater充气机=(LayoutFlater)getSystemService(布局充气机服务);
convertView=充气机。充气(resourceId,null);
}
//确保使用convertView.findViewById,而不仅仅是findViewById!
TextView textView1=convertView.findViewById(R.id.yourTextViewsId);
textView1.setText(对象[位置]);
textView1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//在这里做点什么
}
});
返回视图;
}
}
当然可以。。您可以通过两种方式添加它
1) 。通过在xml文件中定义函数,并在自定义适配器类的getview或bindview中定义这些函数
@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
Button btn = (Button) view.findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
}
return view;
}
2) 。或者在自定义适配器类的bindview或getview中定义onclick侦听器
@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
Button btn = (Button) view.findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
}
return view;
}
当然。。您可以通过两种方式添加它 1) 。通过在xml文件中定义函数,并在自定义适配器类的getview或bindview中定义这些函数
@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
Button btn = (Button) view.findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
}
return view;
}
2) 。或者在自定义适配器类的bindview或getview中定义onclick侦听器
@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
Button btn = (Button) view.findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
}
return view;
}
是的,你可以。向我们展示你的代码是的,你可以。显示您的代码