У меня проблема с реализацией метода onItemClick(). Но я не знаю, как сформулировать свой вопрос на английском языке, чтобы найти что-то на Google ^^onItemClick() способ. как реализовать право?
Проблема:
У меня есть ListView. Этот список имеет заполненную форму как taks. Любая задача активирует другое действие. Я мог бы использовать значение position
, но задачи часто выполняются, так что position
не является правильным идентификатором. Мне нужно что-то вроде тега?
list.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long id) {
}
});
Адаптер:
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;
}
}
В качестве идентификатора вы можете использовать 'position' или' id'. Если вы реализуете свой собственный ListAdapter, убедитесь, что вы предоставили правильный идентификатор с помощью метода 'Adapter.getItemId()' – Antonio
Не могли бы вы также показать нам свой адаптер? –
Да, я использую собственный listAdapter. Но как узнать, какой идентификатор принадлежит какой задаче? Задачи не всегда в одном порядке. Я отредактировал сообщение выше и добавил код адаптера – Bolic