Reputation: 745
i have a problem by implementing the onItemClick() method right. But i do not know how to formulate my question in english to find something at google ^^
Problem:
i have a listview. This listview ist filled with somehting like taks. Any task activates another action. I could use the valueposition
, but the tasks are often chaging, so that the position
is not the right identifyer. I need something like a tag?
list.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long id) {
}
});
The Adapter:
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import de.sebspr.app08.R;
public class HalleAdapter extends BaseAdapter {
private LayoutInflater layoutInflater;
private ArrayList<ItemHalle> listItem;
public HalleAdapter(Context context, ArrayList<ItemHalle> listItem){
this.listItem = listItem;
layoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return listItem.size();
}
@Override
public Object getItem(int position) {
return listItem.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView == null){
convertView = layoutInflater.inflate(R.layout.halle_item, null);
holder = new ViewHolder();
holder.center = (TextView) convertView.findViewById(R.id.halletxt1);
holder.right = (TextView) convertView.findViewById(R.id.halletxt2);
holder.image = (ImageView) convertView.findViewById(R.id.halleimage);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.center.setText(listItem.get(position).getCenter());
holder.right.setText(listItem.get(position).getRight()
+de.sebspr.app08.MainActivity.getMContext()
.getResources().getString(R.string.geldZeichen));
holder.image.setImageDrawable(listItem.get(position).getIcon());
return convertView;
}
static class ViewHolder{
TextView center;
TextView right;
ImageView image;
}
}
Upvotes: 0
Views: 375
Reputation: 1225
You can use Adapter.getItem() that will return your custom object.
list.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position,
long id) {
ItemHalle item = (ItemHalle)adapterView.getAdapter().getItem(pos);
}
});
Upvotes: 1