2011-04-29 87 views
0

我有一个问题,我的ListActivity,我希望有人能帮助我。 我创建了我AdapterListActivity的适配器

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; 
} 

}

但现在我有问题,在列表中的元素做onClick。我有两个问题 - 当我这样做onClick我想传递一个对象......但在这里,我没有对象只有一个textViewcheckbox - 和第二,当我把startActivity它不识别器

我打电话给我的适配器是这样的:

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     [...] 
     MyListAdapter myAdapter= new MyListAdapter(getBaseContext()); 

      for (Meansurement elem : procesos) { 
       myAdapter.addItem(elem.getName()); 
      } 
     } 
     setListAdapter(myAdapter); 
    } 

回答

0

设置列表上的onItemClickListener,而不是对个人textviews设置一个onclick:

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); 
     } 
    }); 
+0

感谢,但我不能做到这一点lista.setOnItemClickListener,它不是识别器 – user721399 2011-04-29 16:40:26

+0

哎呀,我没有看到你使用的是ListActivity,那么你只需要重写onListItemClick(...)。例如http://www.tutorialforandroid.com/2009/01/clicking-items-in-listactivity.html – dmon 2011-04-29 18:16:54