public class UserList extends ListActivity implements AdapterView.OnItemClickListener{
private Client client; private ArrayList<User> users = new ArrayList<User>(); private UserAdapter userAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.user_list); getListView().setItemsCanFocus(false); getListView().setOnItemClickListener(this); Intent i = getIntent(); if (i!= null) { if (i.getAction().equalsIgnoreCase(Intent.ACTION_VIEW)) { this.client = (Client) i.getSerializableExtra (Constants.CLIENT_CLASS_NAME); this.userAdapter = new UserAdapter(this, R.layout.user_row, users); users = (ArrayList<User>) this.client.getUsers(); Log.i(getClass().getSimpleName(),"Display users"); for(int j=0;j<users.size();j++) { this.userAdapter.add(users.get(j)); } setListAdapter(this.userAdapter); } } } @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { Log.d(getClass().getSimpleName(), " -- Click -- "); } // Adapter private class UserAdapter extends ArrayAdapter<User> { private LayoutInflater mInflater; private ArrayList<User> items; public UserAdapter(Context context, int resourceId, ArrayList<User> items) { super(context, resourceId, items); mInflater = LayoutInflater.from(context); this.items = items; } public boolean areAllItemsSelectable() { return true; } public boolean isEnabled(int position) { if (position >= 0 && position <= items.size()) { return true; } return false; } public int getCount() { return items.size(); } public User getItem(int position) { if (0 == position) { return null; } return items.get(position); } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; View v = convertView; User user = items.get(position); if (v == null) { mInflater = (LayoutInflater)getSystemService (Context.LAYOUT_INFLATER_SERVICE); v = mInflater.inflate(R.layout.user_row, null); if (user != null) { // Creates a ViewHolder and store references to the two children views // we want to bind data to. holder = new ViewHolder(); holder.firstNameText = (TextView) v.findViewById (R.id.user_first_name); holder.lastNameText = (TextView) v.findViewById (R.id.user_last_name); holder.phoneNumberText = (TextView) v.findViewById (R.id.user_phone_number); holder.statusText = (TextView) v.findViewById (R.id.user_status); } v.setTag(holder); } else { holder = (ViewHolder) v.getTag(); } if (holder.firstNameText != null) { holder.firstNameText.setText(user.getFirstName()); } if (holder.lastNameText != null){ holder.lastNameText.setText(user.getLastName()); } if ( holder.phoneNumberText != null){ holder.phoneNumberText.setText(user.getPhoneNumber()); } if (holder.statusText != null){ holder.statusText.setText(String.valueOf(user.getStatus ())); } return v; } class ViewHolder { TextView firstNameText; TextView lastNameText; TextView phoneNumberText; TextView statusText; } public long getItemId(int position) { return position; } } On 3 juin, 13:35, guna <gunaz...@gmail.com> wrote: > Post your latest code... So that its easy to correct the errors.... Check > whether enabled the listitems..... > > On Wed, Jun 3, 2009 at 4:59 PM, Tom <thomas.coz...@gmail.com> wrote: > > > I added to my class "implements AdapterView.OnItemClickListener". > > Then I implemented "onItemClickListener" method and added in > > "onCreate" "setOnClickListener(this)". > > > Now I can select and highlight items but only with the trackball. > > Nothing happens with the mouse event. > > > On 3 juin, 13:23, guna <gunaz...@gmail.com> wrote: > > > Ask clearly your questions........ > > > > On Wed, Jun 3, 2009 at 4:45 PM, Tom <thomas.coz...@gmail.com> wrote: > > > > > I just want to notice that the Layout for the ArrayAdapter contains > > > > checkbox. > > > > > On 3 juin, 11:33, Tom <thomas.coz...@gmail.com> wrote: > > > > > Ok > > > > > I added to my class "implements AdapterView.OnItemClickListener". > > > > > Then I implemented "onItemClickListener" method and added in > > > > > "onCreate" "setOnClickListener(this)". > > > > > > Now I can select and highlight items but only with the trackball. > > > > > Nothing happens with the mouse event. > > > > > > May have implement "OnItemSelectedListener" too ? > > > > > > Thanks > > > > > Tom > > > > > > On 2 juin, 16:47, guna <gunaz...@gmail.com> wrote: > > > > > > > Tom, > > > > > > > You didnt implements OnItemClickListener, and also in oncreate add > > > > > > setonitemclicklistener(this).... > > > > > > > On Tue, Jun 2, 2009 at 8:10 PM, Tom <thomas.coz...@gmail.com> > > wrote: > > > > > > > > These are my line of codings : > > > > > > > > public class UserList extends ListActivity{ > > > > > > > > private Client client; > > > > > > > private ArrayList<User> users = new ArrayList<User>(); > > > > > > > private UserAdapter userAdapter; > > > > > > > public static final int MENU_ITEM_VIEW = Menu.FIRST; > > > > > > > private static final int COLUMN_INDEX_TITLE = 1; > > > > > > > > �...@override > > > > > > > public void onCreate(Bundle savedInstanceState) { > > > > > > > super.onCreate(savedInstanceState); > > > > > > > setContentView(R.layout.user_list); > > > > > > > > Intent i = getIntent(); > > > > > > > if (i!= null) > > > > > > > { > > > > > > > if > > > > (i.getAction().equalsIgnoreCase(Intent.ACTION_VIEW)) > > > > > > > { > > > > > > > this.client = (Client) i.getSerializableExtra > > > > > > > (Constants.CLIENT_CLASS_NAME); > > > > > > > > this.userAdapter = new UserAdapter(this, > > > > > > > R.layout.user_row, users); > > > > > > > users = (ArrayList<User>) this.client.getUsers(); > > > > > > > for(int j=0;j<users.size();j++) > > > > > > > { > > > > > > > this.userAdapter.add(users.get(j)); > > > > > > > } > > > > > > > setListAdapter(this.userAdapter); > > > > > > > } > > > > > > > } > > > > > > > } > > > > > > > > private class UserAdapter extends ArrayAdapter<User>{ > > > > > > > > private LayoutInflater mInflater; > > > > > > > private ArrayList<User> items; > > > > > > > > public UserAdapter(Context context, int resourceId, > > > > > > > ArrayList<User> items) > > > > > > > { > > > > > > > super(context, resourceId, items); > > > > > > > mInflater = LayoutInflater.from(context); > > > > > > > this.items = items; > > > > > > > } > > > > > > > > public boolean areAllItemsSelectable() > > > > > > > { > > > > > > > return true; > > > > > > > } > > > > > > > > public boolean isEnabled(int position) { > > > > > > > if (position >= 0 && position <= items.size()) { > > > > > > > return true; > > > > > > > } > > > > > > > return false; > > > > > > > } > > > > > > > > public int getCount() { > > > > > > > return items.size(); > > > > > > > } > > > > > > > > public User getItem(int position) { > > > > > > > if (0 == position) { > > > > > > > return null; > > > > > > > } > > > > > > > return items.get(position); > > > > > > > } > > > > > > > > �...@override > > > > > > > public View getView(int position, View convertView, > > ViewGroup > > > > > > > parent) { > > > > > > > > ViewHolder holder = null; > > > > > > > View v = convertView; > > > > > > > User user = items.get(position); > > > > > > > > if (v == null) { > > > > > > > mInflater = (LayoutInflater)getSystemService > > > > > > > (Context.LAYOUT_INFLATER_SERVICE); > > > > > > > v = mInflater.inflate(R.layout.user_row, null); > > > > > > > > if (user != null) { > > > > > > > // Creates a ViewHolder and store > > references > > > > to the > > > > > > > two children views > > > > > > > // we want to bind data to. > > > > > > > holder = new ViewHolder(); > > > > > > > holder.firstNameText = (TextView) > > > > v.findViewById > > > > > > > (R.id.user_first_name); > > > > > > > holder.lastNameText = (TextView) > > > > v.findViewById > > > > > > > (R.id.user_last_name); > > > > > > > holder.phoneNumberText = (TextView) > > > > v.findViewById > > > > > > > (R.id.user_phone_number); > > > > > > > holder.statusText = (TextView) > > v.findViewById > > > > > > > (R.id.user_status); > > > > > > > } > > > > > > > > v.setTag(holder); > > > > > > > } > > > > > > > else > > > > > > > { > > > > > > > holder = (ViewHolder) v.getTag(); > > > > > > > } > > > > > > > > if (holder.firstNameText != null) { > > > > > > > holder.firstNameText.setText(user.getFirstName()); > > > > > > > } > > > > > > > if (holder.lastNameText != null){ > > > > > > > holder.lastNameText.setText(user.getLastName()); > > > > > > > } > > > > > > > if ( holder.phoneNumberText != null){ > > > > > holder.phoneNumberText.setText(user.getPhoneNumber()); > > > > > > > } > > > > > > > if (holder.statusText != null){ > > > > > holder.statusText.setText(String.valueOf(user.getStatus > > > > > > > ())); > > > > > > > } > > > > > > > > return v; > > > > > > > } > > > > > > > > private class ViewHolder { > > > > > > > TextView firstNameText; > > > > > > > TextView lastNameText; > > > > > > > TextView phoneNumberText; > > > > > > > TextView statusText; > > > > > > > } > > > > > > > > public long getItemId(int position) { > > > > > > > return position; > > > > > > > } > > > > > > > > } > > > > > > > > �...@override > > > > > > > public void onCreateContextMenu(ContextMenu menu, View view, > > > > > > > ContextMenuInfo menuInfo) { > > > > > > > AdapterView.AdapterContextMenuInfo info; > > > > > > > try { > > > > > > > info = (AdapterView.AdapterContextMenuInfo) menuInfo; > > > > > > > } catch (ClassCastException e) { > > > > > > > Log.e(getClass().getSimpleName(), "bad menuInfo", e); > > > > > > > return; > > > > > > > } > > > > > > > > Cursor cursor = (Cursor) getListAdapter().getItem > > > > > > > (info.position); > > > > > > > if (cursor == null) { > > > > > > > return; > > > > > > > } > > > > > > > > menu.setHeaderTitle(cursor.getString(COLUMN_INDEX_TITLE)); > > > > > > > menu.add(0, MENU_ITEM_VIEW, 0, > > > > > > > R.string.localization_user_view); > > > > > > > } > > > > > > > > �...@override > > > > > > > public boolean onContextItemSelected(MenuItem item) { > > > > > > > AdapterView.AdapterContextMenuInfo info; > > > > > > > try { > > > > > > > info = (AdapterView.AdapterContextMenuInfo) > > > > > > > item.getMenuInfo(); > > > > > > > } catch (ClassCastException e) { > > > > > > > Log.e(getClass().getSimpleName(), "bad menuInfo", e); > > > > > > > return false; > > > > > > > } > > > > > > > > switch (item.getItemId()) { > > > > > > > case MENU_ITEM_VIEW: { > > > > > > > } > > > > > > > } > > > > > > > return false; > > > > > > > } > > > > > > > > �...@override > > > > > > > protected void onListItemClick(ListView l, View v, int > > position, > > > > > > > long id) { > > > > > > > Uri uri = > > ContentUris.withAppendedId(getIntent().getData(), > > > > > > > id); > > > > > > > > String action = getIntent().getAction(); > > > > > > > if (Intent.ACTION_PICK.equals(action) || > > > > > > > Intent.ACTION_GET_CONTENT.equals(action)) { > > > > > > > setResult(RESULT_OK, new Intent().setData(uri)); > > > > > > > } else { > > > > > > > startActivity(new Intent(Intent.ACTION_EDIT, uri)); > > > > > > > } > > > > > > > } > > > > > > > > } > > > > > > > > Thanks > > > > > > > Tom > > > > > > > > On 2 juin, 15:51, guna <gunaz...@gmail.com> wrote: > > > > > > > > Its good if you posted your line of codings? > > > > > > > > listview.setOnItemClickListener() > > > > > > > > > Guna > > > > > > > > > On Tue, Jun 2, 2009 at 7:17 PM, Tom <thomas.coz...@gmail.com> > > > > wrote: > > > > > > > > > > Which listener do you think? > > > > > > > > > > In fact , when I scroll in the ListView with the mouse, I can > > see > > > > > > > > > items highlighted. > > > > > > > > > But when I click on the item, nothing happens (item's color > > > > doesn't > > > > > > > > > change). > > > > > > > > > > On 2 > > ... > > plus de détails » --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---