简体   繁体   中英

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)convertView.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);
      }
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM