Adapter of ListActivity
I have a problem with my ListActivity
, i hope someone can help me.
I have created my Adapter
:
public class MyListAdapter extends BaseAdapter {
private ArrayList<String> lista= new ArrayList<String>();
private LayoutInflater myInflater;
public MyListAdapter(Context context){
myInflater= (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public void addItem(final String item){
lista.add(item);
notifyDataSetChanged();
}
public int getCount() {
return lista.size();
}
public Object getItem(int position) {
return lista.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder= null;
if (convertView == null){
convertView= myInflater.inflate(R.layout.index, null);
holder= new ViewHolder();
holder.textView= (TextView)con开发者_StackOverflow中文版vertView.findViewById(R.id.empty);
holder.checkBox= (CheckBox) convertView.findViewById(R.id.Check);
convertView.setTag(holder);
}else{
holder=(ViewHolder)convertView.getTag();
}
holder.textView.setText(lista.get(position));
holder.textView.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Intent myIntent= new Intent (view.getContext(),Chronometer.class);
myIntent.putExtra(name, value)
}
});
return convertView;
}
}
but now I have problem with do onClick
in the element of the list. i have two problem
- when i do onClick
i want to pass an object... but here I don't have the object only a textView
and checkbox
- and second when i put startActivity
it isn't recognizer
I call my adapter like this:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
[...]
MyListAdapter myAdapter= new MyListAdapter(getBaseContext());
for (Meansurement elem : procesos) {
myAdapter.addItem(elem.getName());
}
}
setListAdapter(myAdapter);
}
Set an onItemClickListener on the list, instead of setting an onclick on the individual textviews:
lista.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list, View view, int position, long id) {
Object item = list.getItemAtPosition(position);
Intent i = new Intent(YourActivity.this, OtherActivity.class);
i.putExtra(ApplicationConstants.EXTRA_ID, item.id);
startActivityForResult(i, INTENT_EDIT_ACCOUNT);
}
});
精彩评论