Android :: Catching Selection Events For Custom List Items
Nov 3, 2010
I thought I knew how to catch list selection events in Android and then I regained consciousness. In my situation, I have a ListView that I populate with a custom view, all of the same class (let's call it the NewsChannel() class). NewsChannel consists of a LinearLayout of ImageViews and TextViews. When the list is displayed, the user may select a NewsChannel item in the list; I want to find out which list item was selected. Also, I registered an onClickListener to one of the TextViews and that works fine: when the text is clicked on, an activity is launched which is looking for the position of the NewsChannel item in the list. So, here's what my code looks like:
1. Registering the onClickListener in the ListActivity:
public class NewsListActivity extends ListActivity {...
public void onCreate(Bundle icicle) { super.onCreate(icicle);
setContentView(R.layout.news_list_format); ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener()
{ public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text item_index = position;
Toast.makeText(getApplicationContext(), "item clicked = " + position,
Toast.LENGTH_SHORT).show(); }}); ...
2. The layout for the ListView associated with NewsListActivity:
<?xml version="1.0" encoding="UTF-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/ android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@drawable/wpaper_tile" >
<ListView android:id="@id/android:list" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_alignParentTop="true"
android:dividerHeight="15dp" android:divider="@android:color/transparent"
android:cacheColorHint="@android:color/transparent" android:scrollbars="none" />
<FrameLayout android:layout_width="fill_parent" android:layout_height="55dp"
android:layout_centerHorizontal="true" android:layout_alignParentBottom="true"
android:background="#88000000"/>
<ImageView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true" android:src="@drawable/phonetop_bg" /> </RelativeLayout>
3. The NewsChannel layout:
<?xml version="1.0" encoding="UTF-8"?> <RelativeLayout xmlns:
android="http://schemas.android.com/apk/res/ android"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<include layout="@layout/news_heading_format"
android:id="@+id/news_heading_header"/>
<ImageView android:id="@+id/news_channel_image" android:layout_width="88dp"
android:layout_height="66dp" android:layout_alignParentLeft="true"
android:layout_below="@id/news_heading_header" android:padding="10dp" />
<TextView android:id="@+id/news_channel_text" android:lines="4"
android:inputType="textMultiLine" android:layout_toRightOf="@id/news_channel_image"
android:layout_below="@id/news_heading_header" android:layout_width="fill_parent"
android:layout_height="wrap_content"/> </RelativeLayout>
When I run the app, the ItemClickListener is never called. However, if NewsChannel were of a simpler type, say, a single ImageView or TextView embedded in the layout, the callback does get called. Any idea what I'm doing wrong? My whole goal is simply to let the activity launched by NewsChannel (not shown) to find out which instance of NewsChannel it was launched from.
View 10 Replies
Sep 25, 2010
If a data row of my list contains a TextView and a Button, is it possible to format those components individually when the List row is selected? Like change drawable of a Button, font color of the TextView apart from the usual highlighting the background of the List row?
How can this be achieved?
Note: A similar question has been asked here: http://stackoverflow.com/questions/3787695/formatting-listview-row-it...
View 3 Replies
View Related
Jul 2, 2009
I have two questions:
1. How do you programmatically generate key strokes? I found some tutorials where it says to use IWindowManager, but that doesn't exist anymore in 1.5. (And WindowManager doesn't provide any function to generate key strokes)
2. How do you programmatically select one item from a ListView? Is it possible to do it with the index of the list item (it's position in the list)
View 4 Replies
View Related
Jun 2, 2009
I developed a List View with a custom adapter (which extends Array Adapter). The problem is that i can't selected or highlighted items. Is there a attribute to fix in the list View Layout or something else?
View 22 Replies
View Related
Aug 28, 2009
Is it possible to add custom menu items in the native Contact list ?
I mean when the user selects a user from his contact list, is it possible to add a custom action there ? ( for those who are familiar with Blackberry development, something similar to the MenuItem class )
View 2 Replies
View Related
Aug 19, 2010
I have used RelativeLayout for a custom implementation of a ListAdapter and I am not sure if I can continue using this or if I need to use TableLayout. In the first example I have the text positioned as I would like by using one image view and one text view containing the book name and the author name. However, I want to style the author text differently so I think I will need two text views. In the second example I have added another text view but it floats to the right. Second eg is Clipboard02.png. How can I make the second text view go under the first text (as in eg 1). I have done this in code rather than using XML layout.
http://carriehall.co.uk/Clipboard01.png
LinearLayout.LayoutParams skyParams = new LinearLayout.LayoutParams( 70, LayoutParams.WRAP_CONTENT );
ImageView skyControl = new ImageView( context );
skyControl.setImageResource( R.drawable.the_eyre_affair );
addView( skyControl, skyParams );
LinearLayout.LayoutParams bookParams = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
bookParams.setMargins( 5, 10, 5, 10 );
TextView bookControl = new TextView( context );
bookControl.setTextAppearance( context, R.style.SpecialText );
bookControl.setText( book.getTitle( ) + "
" + book.getAuthor( )); addView( bookControl, bookParams );
View 1 Replies
View Related
May 10, 2010
How do I get the selected items in a ListView which contains a multi selelected check boxes.?
The following code doesn't work correctly... getContacts() is being called in a Button click().
CODE:..................
View 7 Replies
View Related
Feb 2, 2010
I'm pretty new to Android dev and still working out a lot of things.I've got a main menu showing using the following code, but can't work out how to disable selected items in the menu. Can anybody help me with some sample code?
View 2 Replies
View Related
Aug 10, 2009
I want to create list with multiple selection. Can some one tell me how can i create it ? code snippt will be much useful.
View 4 Replies
View Related
Aug 1, 2010
I have a simple list view control
My queries are:
1) how to set first row selected on start (after fill data in list view)
2) when i navigate by hardware button i got AdapterView.OnItemSelectedListener and color of row background change, but when i click i not get any OnItemSelectedListener and no row selected. How to select row on click.
3) when i change focus list row selection removed.
View 1 Replies
View Related
Nov 3, 2010
i am using following code to display list with radio buttons now i want to select specific radio button of list by default so using setSelection property which does not work.
View 2 Replies
View Related
Jul 18, 2010
I have a dialog window that covers 1/3 of the entire screen height and is displayed on top of my activity. The dialog holds two AutoCompleteTextView fields.
The problem I'm facing is that when the user starts typing something into the AutoCompleteTextView, the list with all suggestions only shows up to the bottom end of the dialog, but doesn't go beyond that even the list is longer. It looks like it's cut off. (screenshot left)
Only after I long-press an item from the suggestion list, the list will be shown in full length. (screenshot right)
Screenhot is at: http://img704.imageshack.us/i/dialogdropdown.png/
How to fix this behaviour so that the list shows in full length right from the beginning, when the user starts typing something?
Code-wise there's nothing special, all I do is:
CODE:..........
One workaround idea is to somehow dispatch a motion event to simulate a touch (but then not selecting though) one of the list items. Any concrete idea in code for a solution.
View 2 Replies
View Related
Aug 6, 2010
I'm working with a list view trying to get specific activities to open when a certain item is selected. This is the code that I'm working with right now. I know its wrong but am not sure what I need to change it make it work. I think I need an intent and tried a few ideas but did not come up with much.
CODE:............
View 1 Replies
View Related
Aug 12, 2010
Edit: Okay, I found a solution. Don't know that it's the proper solution, but it does work correctly. Added to the code below. I'm trying to allow a user to select a number of directories from a checklist, and return them upon clicking a "Submit" button. Here's a snippet of my code. It populates the List View with all the directories on /sd card/, and for the initial selection (of however many I pick) when I submit, the log shows the correct choices returned. However, if I un check an item, and click "Submit" again, it still shows as if all are selected. Do I need to write a handler to un check an item? I thought that was taken care of by the choice Mode selection?
View 1 Replies
View Related
Mar 11, 2009
I'd like to use the standard selection color when clicking on a list item. Where do I get it from?
View 3 Replies
View Related
Jan 31, 2010
How do I do this per selected list item.I tried adding this to android:background
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@color/android_green" />
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@color/black_alpha" />
<item android:state_focused="false"
android:state_pressed="true"
android:drawable="@color/black_alpha" />
<item android:drawable="@color/white_alpha" />
</selector> but it does not work, it changes the entire list.
View 3 Replies
View Related
Sep 2, 2009
I am wondering is there any way to create something similar to spinner but which allows multiple selection. I guess we can select multiple entries from ListView but I don't have much space to show all the entires and also I need to show three different categories on the same Activity which you can select from.
Here is what I want to do:
Category 1:
Category 2:
Category 3:
View 2 Replies
View Related
Oct 6, 2013
I am trying to create a Dialog with list items in it with List Adapter.Dialog is working fine.
ISSUE:-
--> Selected list row is NOT Highlighted for whichever list item "TextView.setBackgroundColor" is used
--> Selected list row is Highlighted for whichever list item "TextView.setBackgroundColor" is NOT used
I want all the list items highlighted upon Selection irrespective of background color (i am setting background color as BLACK)
MainActivity.java
[HIGH]
package com.example.testpro;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
[code]...
View 1 Replies
View Related
May 31, 2010
I have a list where i basically need a hierarchy of items. Any children of an item would be padded slightly, as to easily distinguish their parent item. How could this be achieved? Note that i could, if needed, make each parent show no children, and then when the parent is clicked, a new list containing all of it's children is loaded. This however requires more clicking to display information than i would prefer. Also, the items themselves will contain graphics and whatnot (to show a drag'n'drop button, etc), so it would be best if it visually appeared as if the item itself had a margin, rather than the contents of the item being padded.
View 1 Replies
View Related
Aug 7, 2009
In Android, I want to present the user with a list. When an item on the list is selected some action is performed, and this list item is no longer selectable. It is also 'grayed out' or the like to indicate that it cannot be selected the next time the list is displayed. I have seen the isSelectable() override in Adapter, but I believe this causes the item to be treated as a separator, which causes visual problems. And I have not found a way to 'gray out' an item.
View 4 Replies
View Related
Jan 12, 2010
I have a list view and an adapter that sets alternating background colors to the list items ("zebra" list style):
public View getView(final int position, View convertView, ViewGroup parent) {
int colorPos = position % colors.length;
...
convertView.setBackgroundColor(colors[colorPos]);
return convertView;}
But now, when i select an item using scroll wheel, or when I click an item, the original colors for selecting/clicking do not override my custom backgrounds (I can see the original color below the one I set).
How can I set the original colors for these states?
View 2 Replies
View Related
Apr 27, 2010
I cannot find any example of a widget showing a scrollable list of items (e.g. text) since the widget api says there is no listview, no scrollview etc.. at all, how to implement a scrollable list inside a widget?
For example a list like friends-stream from HTC shows or many other widgets around.... do i have to code my own list-implementation for a widget.
View 9 Replies
View Related
Dec 16, 2009
The way I want it is, per row there will be a text and is followed by a right arrow button, so that the user can click on that button to edit the content of that row. If the user is using the keypad, by using the left and right buttons on the keypad, he should be able to select the textview or the Button in that particular row. I have seen this in a couple of apps. The way I see that working on those apps appear as if they are maintaining two lists in parallel.
The reason i felt it this way is, if I am on row 1 of the list and if I press the right key on the phone keypad, then the right arrow button will get highlighted and now if I use the down key or if I keep pressing the down key, then the focus will scroll through that arrow button only as if that is an another parallel list constructed. I don't know if that is a good way to do it. I tried many for getting this to work, but couldn't succeed.
View 4 Replies
View Related
Sep 2, 2010
I have a listview from an SQLDatabase using custom CursorAdaptor. I would like to go back to the activity that I used to create the items when I click on them in the listview. So that I can edit the entries. But nothing happen when I implement the OnItemClick method and the getItemId() on the CursorAdapter even though am not sure I am correct there. Here is my Code:
public void onItemClick(AdapterView<?> adapview, View view, int position, long rowId) {
Cursor c = adapter.retrieveRow(rowId); // retrieve row from Database
Intent edit = new Intent(this,NewItem.class);
edit.putExtra(DBAdapter.KEY_ID, rowId);
edit.putExtra(DBAdapter.Title, c.getString(c.getColumnIndex(DBAdapter.Title)));
edit.putExtra(DBAdapter.DATE, c.getString(c.getColumnIndex(DBAdapter.DATE)));
startActivity(edit); } public long getItemId(int id){ return id; }
View 1 Replies
View Related
Oct 16, 2010
I've got the following main.xml:
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout
android:id="@+id/widget0" android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" >
<ListView android:id="@+id/listview" android:layout_width="315px"
android:layout_height="379px" android:layout_x="2px" android:layout_y="50px" >
</ListView> <TextView android:id="@+id/title" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Select device:" android:textSize="17sp"
android:layout_x="-2px" android:layout_y="1px" >
</TextView> <Button android:id="@+id/refresh" android:layout_width="109px"
android:layout_height="wrap_content" android:text="Refresh" android:layout_x="209px android:layout_y="7px" >
</Button> </AbsoluteLayout>
The main class does nothing but drawing the layout. I've got the following class and layout for the listitems:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:padding="10dp" android:textSize="16sp" >
</TextView> package com.android.bluetoothp2p;
import android.app.ListActivity; import android.os.Bundle;
import android.view.View; import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter;
import android.widget.ListView; import android.widget.TextView;
import android.widget.Toast;
public class BTListView extends ListActivity {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES)); ListView lv = getListView();
lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show(); } } ); }
Countries is just an array with a list of countries, some dummy values. Now, how do I make the list items of the BTListView class go in the ListView (with @+id/listview) of the main class? Now my list works, but it isn't clickable anymore. This is the code:
ListView lv = getListView(); lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), "lolwat", Toast.LENGTH_SHORT).show();
} } );
View 1 Replies
View Related
Feb 5, 2009
Can any one please tell me how to add multiple items (images/text) in list view?
View 4 Replies
View Related
Oct 27, 2010
I want to disable few items in List View and i am using Simple Adapter to do that. I am not getting how to disable the items.
View 3 Replies
View Related
Sep 4, 2010
On the iPhone a user is able to re-arrange the actual rows in a list. Is this possible on Android? If so, any examples would be great.
View 2 Replies
View Related
Jul 6, 2010
I am trying to add ListView items one by one. So if I have say 60 items the application would add the views to the list view one at a time -- thus showing the user that the application is loading more things. This is my code:
try {
JSONArray j = getTaggsJSON();
Log.v(TAG, String.valueOf(j.length()));
a = new createSpecialAdapter(this, R.layout.individual_tagg_view,
R.layout.list_item, view, j);
ListView v = this.getListView();
v.setStackFromBottom(true);
setListAdapter(a);
new addViewsToList().execute(j);
} catch (UnknownHostException e) {.....
View 1 Replies
View Related
Sep 27, 2009
what code i'd use to get what checkboxes are checked when i press the ok button for the code below.
inal CharSequence[] tags = {"first", "2nd", "third"}; boolean[] f=new boolean[tags.length]; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Filter"); builder.setMultiChoiceItems(tags, f, null); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) {
View 5 Replies
View Related