Android :: Bind A ListView To Collection Of Custom Objects?
Feb 23, 2010
I've got a class called PhoneContact with 3 properties:
Title, Description and PhoneNumber
If I have a collection of these, how would I go about binding these to a ListView containing a TextView for each property?
View 1 Replies
Sep 14, 2010
I get my Models in a nice object-oriented form. In order to bind them to my List, I have to use the listAdapter. Can I only fill this listAdapter with stupid ArrayLists? Because that means, I have to iterate over my ModelCollection and pull all the data out of my Models again. So, I detach my data from the models and I cant easily refresh the data in my listView, if something chances in the modelCollection (like becoming bigger through new Items / pagination). Does a more intelligent way exist, than I use right now? Can I bind my ModelCollection more driectly to the listView?
ModelCollection modelCollection = ModelCategory.findAll();
/*
* Prepare Data for Adapter
*/
ArrayList<String> itemTitles = new ArrayList<String>();
// Iterate over my ModelCollection and pull all the Data from each Model
for (int i = 0; i < modelCollection.items.size(); i++) {....................
View 1 Replies
View Related
Aug 12, 2010
I have a member variable in my Activity which is an ArrayList. The objects populating this Array List are objects I have defined called Rating Item. Rating Item has several member vars like rating, comment, ID, etc. I would like to save this Array List in onSaveInstanceState so it can be repopulated from onRestoreInstanceState. What is the best way to do this? I've never saved the state of an object of this complexity.
View 2 Replies
View Related
Sep 16, 2010
I have an application that uses a service to create an ArrayList of custom objects (MyObject) every x seconds. I then want my Activity to obtain this ArrayList. I'm currently planning on having the Service send a message to the Activity's handler every time it finishes the query for the data. I want the message to the Handler to contain the ArrayList of MyObjects. When building the method in the Activity to get this ArrayList out of the message, I noticed that I couldn't.
View 1 Replies
View Related
Jul 30, 2010
Intents in Android are an elegant way to pass messages between uncoupled components, but what if you want to send extra data with the Intent? I know you can add various value types, and objects that implement Parcelable, as extras, but this doesn't really cater for sending user defined types locally (i.e. not over a remote interface). Any ideas?
View 3 Replies
View Related
Jun 26, 2010
I would like to change text and back ground color of my Listview without building custom rows. Is this possible ?
View 1 Replies
View Related
Jun 18, 2010
I have seen examples implementing a custom Filter. The Android developer docs talk about implementing a Filterable interface. Does anyone have any advice and/or sample code on the best way to implement filtering in a ListView ?
View 2 Replies
View Related
Oct 26, 2010
The FAQ mentions a method of passing objects around activities. (It is not clear to me): "A HashMap of WeakReferences to Objects. You can also use a HashMap of WeakReferences to Objects with Long keys. When an activity wants to pass an object to another activity, it simply puts the object in the map and sends the key (which is a unique Long based on a counter or time stamp) to the recipient activity via intent extras. The recipient activity retrieves the object using this key.".................
View 7 Replies
View Related
Jun 15, 2010
I have an application that have a Google map on Google Android 1.5 since we have been working on the application for a long time, we are not in stage of upgrading to the newest framework, so we are using 1.5. Now, I have map locations that are dynamically generated and drawn on the map at run-time to visualize some streams, Up to this point the application is working fine, Now my problem is that I am trying to filter the objects ( addresses) to visualize only the on-screen ones. I do NOT want to visualize the addresses that are off-screen. The way I am trying to do this is to check the screen-coordinates of each object (address) before visualizing it, then it the coordinates (x,y) more than (0,0) and less than (320, 460). I should visualize it. I am trying to use this approach, but it is not working for some reasons, I have tried many posts but could not understand why, there must be something missing somewhere that I am not aware of.
View 11 Replies
View Related
May 28, 2010
Is there any way to place a custom icon for each group item? Like for phone I'd like to place a phone, for housing I'd like to place a house.
Here is my code, but it keeps throwing a Warning and locks up on me.
CODE:.............
The error i'm getting:
CODE:................
View 2 Replies
View Related
Oct 13, 2010
I have a LinearLayout layout with a ListView in it. I've made the android:background of the LinearLayout (I've also tried it on the ListView) be an image that I would like for my background.
This works fine enough. However, when I start scrolling through the ListView, the background often disappears and becomes black. If I move it around some more I may be able to get it to appear again. It would seem that Android is drawing over, or perhaps painting what's behind my background onto the items.
View 1 Replies
View Related
Oct 6, 2010
Threre is a unique resquirement for my project.
I need to create a custom scrollbar for a listview.
I can do this task by setting drawable for scrolllbar.But that does not fulfill my requirement.
There are arrows in scrollbar drawable image and when clicked on them,particular list item should get selected.
So I need to use custom scrollbar for this requirement.
View 16 Replies
View Related
Apr 29, 2010
I wrote a custom Adapter for a listview ,but when i tried implement click event for list item ,i found that it was not responding ,I will be glad if someone suggest me a solution.
public class TourList extends ListActivity {
....
setContentView(R.layout.tourlist);
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
//i couldn't reach here
Log.v(TAG,"did u get me");/.....................
View 1 Replies
View Related
Aug 20, 2009
I have a custom ListView and I want to redraw a View inside each row under some circumstances. How would I do that in the ListActivity?
But that seems a waste, redrawing the whole listview. Code...
View 4 Replies
View Related
Sep 1, 2010
I am in a situation like, i have custom list view. One button, with listitems. When i click the button, i need to switch the activity. But the calls, startActivityForResult(myIntent, 0); --> is a non static call. I couldnt initiate this function in onClickLIstener() for the button. Dont know how to proceed with this situation ? Can anyone help me out with this.? Code...
View 4 Replies
View Related
Jun 23, 2009
I would like to draw custom images within a ListView, for this I have created a ListView and an ArrayAdapter object. I have specified that each element of the ListView will be an ImageView which is specified by an XML layout file. Now, I would like to draw a custom graphic in each cell depending upon certain paramters.
View 3 Replies
View Related
Oct 31, 2009
I am building a custom listview used to list contacts from the contact cursor into a list with two text view for the phone number and name of the contact as well as a place for the images. I am getting a nullpoint error when i try to setText for my TextView Even though i checked the variable to see if they contained a string I have no ideas whats wrong with it. Code...
View 1 Replies
View Related
Oct 19, 2010
I have a two layouts files in my app. Also I have Activity extends ListActivity. Every item of this activity looks consider item.xml layout file. I am trying to get context menu when make long presss on item, but I don't see it.
In my activity I trying to registerForContextMenu(getListView()) and override two methods
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = this.getIntent().getExtras();
new PopulateAdapterTask().execute(ACTION_SELECT);}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);} Code...
View 2 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
Oct 8, 2010
I have an ExpandableListView that I want to populate with my custom views of type NoteView. NoteView extends LinearLayout and contains two buttons and a checkbox. I have almost everything working, the NoteView's are being populated with backing data, the lists are getting filled, and the buttons are clickable and perform the required tasks.
The problem is the ExpandableListView no longer responds to click/longclick/keypress events at all (other than selecting list items with trackball/DPAD).
I replaced my custom view with a standard TextView and the touch events flowed normally again, so it is almost certainly something I am doing wrong with my custom view or some obscure ListView setting I am overlooking.
Here is my NoteView code and XML Layout. What am I missing?
CODE:.........................
View 1 Replies
View Related
May 24, 2010
I am trying to create a ListView and add it to a custom ViewGroup.
Here is my code:
CODE:.................
View 3 Replies
View Related
Mar 5, 2010
I have a listview with a custom item_row.xml. I've defined a selector in this way:
CODE:................
And then put into item_row.xml in this way:
CODE:...................
I want 2 things:
When i move with arrow keys, the item selected changed its background. It's works fine with the actual implementation of selector.
When i press a item, the item changed its background too, but it doesn't work with the actual selector.
I try to set also into the ListView android:listSelector="@drawable/list_selector" but it doesn't work neither.
View 1 Replies
View Related
May 13, 2010
I want to create a list view custom like this link :
http://sites.google.com/site/androideyecontact/_/rsrc/1238086823282/Home/android-eye-contact-lite/eye_contact-list_view_3.png?height=420&width=279.
so far I have made a list view with text, and I am not extending list Activity, but I am extending Activity only.please if someone can provide me with a code for this.
View 2 Replies
View Related
Aug 29, 2010
Is it possible to use a hashmap in ArrayAdapter instanciation ?
View 2 Replies
View Related
Feb 14, 2010
I think I've tried everything(made focusable:false!!) and I cant capture in anyway the selected checkbox on my list item. Even OnItemClickListener, doesn't respond to any click. How can I retrieve checked checkboxes in my list item? My list item included: image view, 4 textviews and the checkbox. Some code:
this is in my ListActivity class:
final String columns[] = new String[] { MyUsers.User._ID, MyUsers.User.MSG, MyUsers.User.LOCATION }; int[] to = new int[] { R.id.toptext, R.id.bottomtext,R.id.ChkBox, R.id.Location}; Uri myUri = Uri.parse("content://com.idan.datastorageprovider/users"); Cursor cursor = getContentResolver().query(myUri, columns, null, null, null); startManagingCursor(cursor); ListCursorAdapter myCursorAdapter=new ListCursorAdapter(this, R.layout.listitem, cursor, columns, to); this.setListAdapter(myCursorAdapter);
And this is my Custom Cursor adapter class:
public class ListCursorAdapter extends SimpleCursorAdapter { private Context context; private int layout; public ListCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c, from, to); this.context = context; this.layout = layout;
} @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { Cursor c = getCursor(); final LayoutInflater inflater = LayoutInflater.from(context); View v = inflater.inflate(layout, parent, false); return v;
} @Override public void bindView(View v, Context context, Cursor c) { TextView topText = (TextView) v.findViewById(R.id.toptext); if (topText != null) { topText.setText("");
} int nameCol = c.getColumnIndex(MyUsers.User.MSG); String name = c.getString(nameCol); TextView buttomTxt = (TextView) v.findViewById(R.id.bottomtext); if (buttomTxt != null) { buttomTxt.setText("Message: "+name); } nameCol = c.getColumnIndex(MyUsers.User.LOCATION);
name = c.getString(nameCol); TextView location = (TextView) v.findViewById(R.id.Location);
if (locationLinkTxt != null) { locationLinkTxt.setText(name);
}
I've tried many ways. many listeners, can't figure how to capture listener to my checkboxes. The data I am binding to the list items from the database, isn't concerned about the checkbox.. only the textviews. There isn't any connection between the database and the checkbox I have in the list's item.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="100sp" android:focusable="false" android:focusableInTouchMode="false"> android:padding="6dip">
<ImageView android:layout_width="wrap_content"
android:layout_height="fill_parent" android:src="@drawable/icon"
android:id="@drawable/icon" android:layout_marginLeft="6dip"
android:focusable="false" android:focusableInTouchMode="false">
</ImageView> <LinearLayout android:id="@+id/LinearLayout01"
android:orientation="vertical" android:layout_width="1sp"
android:layout_height="fill_parent" android:layout_weight="1"
android:focusable="false" android:focusableInTouchMode="false">
<TextView android:id="@+id/toptext" android:layout_weight="1"
android:gravity="center_vertical" android:text="OrderNum"
android:singleLine="true" android:layout_height="0dp"
android:layout_width="wrap_content" android:focusable="false"
android:focusableInTouchMode="false">
</TextView> <TextView android:id="@+id/bottomtext" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:focusable="false"
android:focusableInTouchMode="false" android:text="TweetMsg">
</TextView> <TextView android:id="@+id/twittLocation"
android:layout_weight="1" android:text="location" android:singleLine="true"
android:layout_width="fill_parent" android:layout_height="0dip"
android:focusable="false" android:focusableInTouchMode="false">
</TextView> <TextView android:layout_weight="1" android:id="@+id/twittLocationlink"
android:text="locationlink" android:gravity="fill_horizontal"
android:layout_width="fill_parent" android:layout_height="0dip"
android:focusable="false" android:focusableInTouchMode="false">
</TextView> </LinearLayout>
<CheckBox android:id="@+id/deleteTwittChkBox" android:text="Delete"
android:layout_width="wrap_content" android:layout_marginRight="2dp"
android:focusable="false" android:checked="false"
android:focusableInTouchMode="false" android:layout_height="fill_parent"></CheckBox>
View 4 Replies
View Related
Aug 4, 2010
I have a listview with a custom arrayadapter that handles about 15 strings. The style of each row alternates (between labels and values for those labels--for example row 1 could be "email address" and row 2 would be the actual email address). I'm changing the style of each row to alternate like this in the arrayadapter's getView() method. So if the item at the current position is a label, I'll change the styling from the default row style (which is what the values have applied to them). When the listview first loads, the styling is perfect and just how I want it to be. If I scroll the list slowly up or down, it stays that way. However, if I scroll the list fast up and down, the styling of the value rows starts changing to that of the label ones until all of the rows have the styling of a label row. I've used custom adapters on other listviews in the app with no problems like this. Found out that it also changes all of the rows to the label styling on portrait->landscape orientation changes. Doesn't do this on landscape->portrait changes. Below is the adapter I'm using.
public class DetailsAdapter extends ArrayAdapter<String> { private TextView text = null; private String item = null;
public DetailsAdapter(Context context, int resource, int textViewResourceId, String[] objects) { super(context, resource, textViewResourceId, objects);
} @Override public View getView(int position, View convertView, ViewGroup parent) { text = (TextView) super.getView(position, convertView, parent); item = getItem(position);
if (item.equals("Name") || item.equals("Mobile") || item.equals("Home") || item.equals("Email") || item.equals("Address")) { text.setBackgroundColor(0xFF575757); text.setTextSize(15);
text.setTypeface(null, Typeface.BOLD); text.setPadding(8, 5, 0, 5);
} else { text.setPadding(15, 15, 0, 15); } return text;
} @Override public boolean isEnabled(int position) { item = getItem(position);
if (item.equals("Name") || item.equals("Mobile") || item.equals("Home") || item.equals("Email") || item.equals("Address")) { return false;
} else { return true; } } }
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