Android :: OnClick() Event On An Item Of ListView Custom Row Layout
Nov 15, 2010
I have a ListView whose rows are formatted by me. Each row has a mix of ImageView and TextView. I have also implemented my own adapter and am able to draw each row through it.
Now, I would want something like this-
User clicks on an ImageView (not anywhere else on the row, but only this ImageView should respond to clicks)
I get to know the position of the row whose ImageView was clicked.
I have tried many things for this and have wanted my code to be as efficient as possible (in terms of overkill).
Currently i can capture the click event on that particular ImageView only, but I can't know which row was clicked.
I have provided an attribute in the Row XML like this-
CODE:..................
And in my code, I have a method like this:
CODE:..............
I can get the parent row (perhaps) but am not sure how to go further from here.
View 1 Replies
Apr 22, 2010
I am using a ListView to display my custom item layout, which may contain some TextViews and an ImageView.
This is the item layout I made (post_item.xml):
CODE:........................
I don't put the ImageView initially in the xml layout, but I will insert it when I need to the FrameLayout programmatically (I also put another views in it when needed). So, there will be some items which has ImageView in it and which don't.
I get the image to fill the ImageView from the Internet (through URL), decode it as Bitmap, and keep it as a Bitmap variable in a class represents the custom item layout (class PostItem).
When the activity shows for the first time it looks fine, but as I scrolled through the items then a problem showed up, the items which shouldn't show any image show the image from the other item which should, although they don't have any ImageView (because I didn't insert it).
I am using SDK 1.6 and the emulator. Haven't tried it in real device because I don't have it.
Here is my code for the Adapter:
CODE:..............
And this is the code to prepare the items:
CODE:.........................
Is this the bug in the emulator or there is some mistake in my code (probably memory problem for the Bitmap)?
View 1 Replies
View Related
Jul 27, 2010
This should be a simple question because I couldn't get the answer from Google . I have ListView in a LinearLayout . I need to handle the click event to allow user click on the LinearLayout to trigger some function. I try to add onClickListener to the LinearLayout , and it works only when I click outside of the ListView . How do I let the click event on ListView propagate automatically to be handled by the Listener of the LinearLayout?
View 5 Replies
View Related
Oct 18, 2010
I'm now stuck in html loading from my assets folder. I've several html pages under assets folder and have to load those at listview item onclick. Each listview item own their html pages.Does anybody know how i can get onclick event and how to show specific html pages?
View 1 Replies
View Related
Jun 25, 2010
I want to delete an item from a ListView, to which have attached a GestureListener. I have overridden the method onFling for that GestureListener to return true of false based on my criteria.
But I don't know how to fetch the last selected item in the ListView. Fling does not select an item in ListItem.
View 1 Replies
View Related
Sep 11, 2010
As you already know, in Twiiter application, twitt content stays in the right hand side of the Username, and in second line, the twitt content stays back to the left of the parent layout. (which is similar to the Listview item's layout of Facebook Application)
My problem is the username and twitt content belong to 2 different columns. Could you please tell me the way to fix the problem?
View 1 Replies
View Related
Apr 17, 2010
Is it possible use the merge tag in the layout XML for a List item? In particular, when using a SimpleCursorAdapter?
View 6 Replies
View Related
Sep 14, 2013
How to delete an item from a ListView.
I have a layout which includes the listview, an edittext and a button. On button click, the edittext's string is added to the listview. Clicking on a listview item opens a dialog which asks for confirmation to delete that item. When confirmation is received, the item appears to delete. But when the delete button is clicked on another item, the item deletes, but the previous item reappears in its spot. From my limited understanding, I assume that the item doesn't delete from the SharedPreferences, and so when they are loaded again, the item reappears. I've tried clearing the SharedPreferences before saving after delete, but this didn't work (though I could've been doing it wrong).
I've included the whole class incase to test it out in IDE. I understand there are a lot of unneeded objects and the code is quite messy which is a result of me screwing around with the code to try and get this to work. Though everything works as it should, aside from deletion.
[HIGH]
package com.example.send2omni;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
[Code]....
And here's the layout to save some time:
[HIGH]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
androidrientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
[Code]...
View 1 Replies
View Related
Jul 1, 2010
I'm making a custom adapter so that I can display a list of items with icons which looks like the menu that comes up when you long click the home screen. For some reason though the list items are not clickable. The can be navigated to with the D-pad but they cannot be clicked in any way. I thought maybe the problem was with the AlertDialog I was using so I replaced a working adapter I had elsewhere but I have the same issue there. My adapter looks like this:
ArrayList<IconListItem> mItems; LayoutInflater mInflater;
public IconListAdapter(Context context, ArrayList<IconListItem> items) {
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mItems = items;
} public IconListAdapter(Context context) {
this(context, new ArrayList<IconListItem>());
} public void add(IconListItem item) { mItems.add(item);
notifyDataSetChanged(); return item;
} public void remove(IconListItem item) { mItems.remove(item); notifyDataSetChanged();
} @Override public int getCount() { return mItems.size();
} @Override public IconListItem getItem(int position) { return mItems.get(position);
} @Override public long getItemId(int position) { return position;
} @Override public View getView(int position, View convertView, ViewGroup parent) { View view;
if(convertView == null){ view = mInflater.inflate(R.layout.two_line_icon_list_item, null);
} else { view = convertView; } IconListItem item = mItems.get(position);
TextView lineOne = (TextView) view.findViewById(R.id.firstLine);
TextView lineTwo = (TextView) view.findViewById(R.id.secondLine);
ImageView iconImage = (ImageView) view.findViewById(R.id.icon);
lineOne.setVisibility(View.VISIBLE); lineTwo.setVisibility(View.VISIBLE);
iconImage.setVisibility(View.VISIBLE); lineOne.setText(item.getText());
if (item.getSubtext() == null) lineTwo.setVisibility(View.GONE);
else lineTwo.setText(item.getSubtext());
if (item.getIcon() == null) iconImage.setVisibility(View.GONE);
else iconImage.setImageDrawable(item.getIcon());
return view; }
And the XML it's inflating:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="6dip" >
<ImageView android:id="@+id/icon" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_marginRight="6dip" />
<LinearLayout android:orientation="vertical" android:layout_width="wrap_content"
android:layout_weight="1" android:layout_height="fill_parent" >
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1"android:gravity="center_vertical"
android:id="@+id/firstLine" android:ellipsize="marquee" android:inputType="text" />
<TextView android:layout_width="wrap_content" android:layout_height="0dip"
android:layout_weight="1" android:ellipsize="marquee"
android:id="@+id/secondLine" android:inputType="text" />
</LinearLayout> </LinearLayout>
When I say they are not clickable, I mean that they items do not highlight in orange when I press them nor does onItemClick ever get called. In my code I have this, a different adapter for another purpose and it works perfectly
this.foos= foos; fa = new FooAdapter(this.foos); fooList.setAdapter(fa);
// View the details for an item when it is selected
fooList.setOnItemClickListener(new OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent i = new Intent(MyActivity.this, MyOtherActivity.class);
i.putExtra("foo", ((fooAdapter)arg0.getAdapter()).getItem(arg2));
i.putExtra("list_position", arg2);
MyActivity.this.startActivityForResult(i, 0);
} } );
But when I swap out the first 3 lines for
IconListAdapter ila = new IconListAdapter(this);
ila.add(0, "Test 1", android.R.drawable.ic_menu_mylocation);
ila.add(0, "Test 2", android.R.drawable.ic_menu_edit);
ila.add(0, "Test 3", android.R.drawable.ic_menu_search);
groupList.setAdapter(ila);
I t stops working.
View 2 Replies
View Related
Oct 27, 2010
I have a custom listview row that contains a number of textView components. Instead of the "standard" single text item, I have created a item where each listview row contains several bits of information. For this example, I have a record id, a name, and a description for each row in the listview. I have my listview populated via
this.mDbHelper = new RecordDBAdapter(this); this.mDbHelper.open();
Cursor c = this.mDbHelper.fetchAllRecords(); startManagingCursor(c);
String[] from = new String[] {RecordDBAdapter.ROW_ID, RecordDBAdapter.NAME,
RecordDBAdapter.DESCRIPTION};
int[] to = new int[] {R.id.recordId, R.id.lblName, R.id.lblDescription};
// Now create an array adapter and set it to display using our row
SimpleCursorAdapter records = new SimpleCursorAdapter(this, R.layout.record_row, c, from, to); this.list.setAdapter(dives);
Now what I want is to be able to access the recordId value within each clicked item. I've tried to follow the Android tutorials to no avail. They do something like
Object o = adapter.getItemAtPosition(position);
but that still doesn't help either. What I really want is to get the value of the recordId within each selected listItem. Does anyone know how this would be accomplished? Here is my onItemClick event:
protected OnItemClickListener onListItemClick = new OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> adapter, View view, int position, long rowId) {
// My goal is either to grab the value of the
// recordId value from the textView, or from the adapter.
//Object o = adapter.getItemAtPosition(position);
//Tried this, no joy
Intent intent = new Intent(NeatActivity.this, SomeOtherActivity.class);
// intent.putExtra("selectedRecordId",val); //val here is a numerical record row id being passed to another activity.
startActivity(intent); } };
View 1 Replies
View Related
Apr 1, 2010
Is it possible to apply a custom background to each Listview item via the list selector?
The default selector specifies @android:color/transparent for the state_focused="false" case, but changing this to some custom drawable doesn't affect items that aren't selected. Romain Guy seems to suggest in this answer that this is possible.
I'm currently achieving the same affect by using a custom background on each view and hiding it when the item is selected/focused/whatever so the selector is shown, but it'd be more elegant to have this all defined in one place.
For reference, this is the selector I'm using to try and get this working:
CODE:...............
And this is how I'm setting the selector:
CODE:.........................
View 3 Replies
View Related
Oct 22, 2009
I've a ListView with items containing information about places with a rating and the distance to the current location.
The items are sorted into groups:
Group 1: within 500m
Group 2: 500m - 1km
Group 3: 1km - 1.5km
Withing these groups the items are sorted by their rating.Now I put out these items via my custom adapter (extension of BaseAdapter) into the ListView, which works perfectly.
However, what I'd like to do is to put a separator before the each first item of each group. This separator can be a TextView saying e.g. 500m - 1km followed by all the ListView items in that group. Any idea on how to realize this?
View 1 Replies
View Related
Jun 13, 2010
I am having trouble getting my layout to give me result I need, I already tried many options and it seems that I'm doing something wrong or completely missing something.
I have a listview with a custom row layout I can't seem to working although it shouldn't be complex. I need of the list row to insist of:
Icon -- title text (bigger and bold) with a short multi line text under the title -- ImageButton
My problem in most of my tests is the icon to the right usually doesn't appear, I guess my center group grows and takes all the space of the button. My last failed attempt was with a Relative Layout, didn't have too much luck with a Linear Layout either.
Here is the row XML:
CODE:.........................
View 2 Replies
View Related
Aug 6, 2010
I am running a sqlite query and binding the returned data to a ListAdapter.
I have used the following example
ListActivity | Android Developers
However, having defined a seperate layout for the rows I cannot change the typeface for textview text1 to a custom one from assets
Here is the row layout
CODE:................
Here is the code from the andriod tutorial
CODE:............
We'll define a custom screen layout here (the one shown above), but typically, you could just use the standard ListActivity layout. setContentView(R.layout.custom_list_activity_view) ;
Query for all people contacts using the Contacts.People convenience class. Put a managed wrapper around the retrieved cursor so we don't have to worry about requerying or closing it as the activity changes state.
CODE:................
Now create a new list adapter bound to the cursor. SimpleListAdapter is designed for binding to a Cursor.
CODE:................
Specify the row template to use (here, two columns bound to the two retrieved cursor rows). mCursor, // Pass in the cursor to bind tonew String[]{People.NAME, People.COMPANY}, // Array of cursor columns to bind to. new int[] {android.R.id.text1, android.R.id.text2}); // Parallel array of which template objects to bind to those columns.
CODE:................
View 2 Replies
View Related
Nov 22, 2010
I have a ListView, which is in singleChoice mode. All I want is to display a RadioButton to the side, that when clicked highlights to say it is selected, and when a different one is clicked that one goes back to unselected and the new one becomes selected. Why is this so hard? This should not be this complicated. I've spent DAYS looking for an appropriate answer to this and I have found nothing, so I'm asking hopefully in a clear and concise manner.
My layout for the listview (R.layout.view_orders):
CODE:.............
My custom row (R.layout.orders_row):
CODE:.................
My onCreate() method:
CODE:.................
Now everything underlying works as expected, you click on a radiobutton and through it's tag I can appropriately select that item from the list and manipulate it how I want. However, when the first radio button is clicked, the last one will be selected. Click that same radio button again, and it is now selected as well. Click it once more and nothing happens, both the last and the first are selected. Now I click any other one on the list, it gets selected like expected. Click anyone of the selected radio buttons and nothing happens, the radio button remains selected.
I have tried using the following in onCreate():
CODE:.................
And that just shows no radio buttons at all. AWESOME.
Now maybe (read: most likely), I'm just dense and can't figure this out, but I've seen this question asked a lot with no real answer. Lots of references to other tutorials or to the Commonsware guy's book. However, the comments are old now and his repository has changed so much, that those are no longer correct answers.
So, does anyone have any idea how to get the expected functionality out of this? Or failing that, just pass me along the GMail app's source code.
View 1 Replies
View Related
Feb 16, 2010
I'm trying to get my first Android app stable enough for the marketplace, and I've hit a brick wall with one exception that I don't understand. Probably I'm doing something stupid, but I can't tell what, and after several hours googling and experimenting, I thought I'd see if I can get some help. My Activity extends ListActivity, and the parts I think are most important are extracted below:
GroupedListAdapter is a simple class that extends BasedAdapter to provide headings for sections of the list (not unlike the Fancy ListView tutorials that are floating around).
I create this in onCreate, and it works fine. Inside onListItemClick, I do some actions which will create a different set of list contents. I "clear" the adapter, which empties the contents, and call reload, which repopulates it. Then I call notifyDataSetChanged.
Most often, this seems to work, but also fairly often, I get the exception following the code snippets below - this seems to indicate the ListView is not in sync with my changes. Lately this crash happens 100% of the time under the simulator.
CODE:.........................
View 8 Replies
View Related
Oct 22, 2010
I want to simulate an onClick event or some of the other keyboard events, etc. is there a general framework to do that?
View 11 Replies
View Related
May 20, 2010
i want to add a marker to a position int the map ,so i add a image through canvas by overwrite overlay .But i want to get the other activity through clicking the image,who can tell me what can i do?
View 2 Replies
View Related
May 21, 2010
In onclicklistener onclick. how to get the x and y coordinates where its clicked.
View 2 Replies
View Related
Sep 20, 2010
I have a listview managed by an adapter that is extending BaseAdapter.
In the getview function im using the convertView to set up a OnClickListener. This OnClickListener work well when I am touching the screen but if I use the trackball of the HTC Desire, I see the row flashing on the screen, but the OnClickListener is not called...
I've read the android dev guide : http://developer.android.com/guide/topics/ui/ui-events.html
and its say that I should receive a onClick event from the trackball...
Im putting here my getview code in case someone see anything strange.
CODE:..............................
View 1 Replies
View Related
Dec 26, 2009
I have a custom layout that I have written that basically just displays a bunch of Image Views. I am handing on Touch events for all the Image Views in my layout. However, if a user touches one image View and then drags over another Image View, I would like to be able to handle that as well. How would I go about capturing this behavior?
View 1 Replies
View Related
Jun 5, 2009
I am facing some problem Like:
Scenario:Three buttons enabled by on click event.
-I am using sliding drawer... on which no of buttons are there. -When sliding drawer is opened...its overlapping the preveously defined three buttons.
My problem is... when i am clicking on sliding drawer ... the below button is activated and accordingly it goes to next activity...
Means ... i expect if one view is on top of another view... the lower view should not work.
View 3 Replies
View Related
Jul 20, 2009
If I want to execute the focused item on the view, I need to select focused item and press enter. Now I want to find another way to execute it without using click action. Does everyone know the other way? Thank you very much.
View 2 Replies
View Related
May 18, 2010
I have an activity, where the ListView holds customized linear layout elements for each row. One of the rows has a button defined as:
<Button
android:text="Pick a contact"
android:id="@+id/btnPickContact"
android:layout_width="wrap_content"
android:gravity="center_vertical"
android:layout_height="wrap_content"></Button>
Then in java, I have this code:...............
View 3 Replies
View Related
Aug 12, 2010
I have a ListActivity where the list items are defined in another XML layout. The list item layout contains an ImageView, a CheckBox, a TextView and such.
What I want is to set an onClick listener to the CheckBox in each list item. That is easy enough. The trouble is I need that onClick handler to know which position in the list it is.
I'm attaching the listener to the CheckBox in getView after that convertView has been inflated. The getView method has a position parameter, but I cannot reference it in the onClick handler for my CheckBox. I understand why, but I don't know how to get around it. How do I accomplish this?
View 2 Replies
View Related
May 13, 2010
If you want a button to provide haptic feedback (ie, the phone vibrates very briefly so you can feel that you really pushed the button), what's the standard way to do that?
It seems you can either explicitly set an onClick() event and call the vibrate() function, giving a number of milliseconds to vibrate, or you can set hapticFeedbackEnabled in the view.
The documentation seems to indicate that the latter only works for long-presses or virtual on-screen keys: http://developer.android.com/reference/android/view/View.html#performHapticFeedback(int)
If that's right, then I need to either make my button a virtual on-screen key or manually set the onClick() event.
Also, if I want the vibrating to happen immediately when the user's finger touches the button, as opposed to when their finger "releases" the button, what's the best way to accomplish that?
Related question: [url]
View 2 Replies
View Related
Jun 8, 2010
In my application i have a button initially on the screen and in onclick of the button ,popup window should open. In the popup window i have an imagebutton , now on click of this button i want to start an activity. The popup window opens but i dont understand how to handle the onclick of the imagebtn inside popup window.
In main.xml i have a button and in popup_example.xml i have an imagebutton.
Java code is as follows:
CODE:..........
And i have two xml layouts.........
CODE:..................
View 2 Replies
View Related
Oct 12, 2010
I'm very new on Android development.
I have this code...
But this line doesn't work:
extraData.putInt(Constants.GAME_ID, this.gameId);
I can't get access to this.gameId.
How can I fix this?
View 1 Replies
View Related
Jul 19, 2010
I could not figure out how to implement two basic functionalities with the expandable lists: 1. The onClick for the child 2. Using linear layout for the children, so that I can have multiple clickable items in same row under the parent item
Can somebody help me with some sample code for the above?
View 1 Replies
View Related
May 24, 2010
I am creating lists in my android app and would like to capture the text of the list item that is clicked but I want to do it in a seperate function so I only have to write the code once. And I want to be able to compare the string to another sting.
View 1 Replies
View Related