Note that there are some explanatory texts on larger screens.

plurals
  1. POCreating ListView from a Collection Set
    primarykey
    data
    text
    <p>I am currently developing a soundboard with the ability to add a sound as a favorite. I have a favorites tab and am working on adding sounds to a ListView when clicked. I did some research and came across a post suggesting to use a <code>Set</code> when avoiding duplicate items. In my application class I have a global variable: <code>public Set&lt;String&gt; favorite_list = new TreeSet&lt;String&gt;();</code>. In my ListViewActivity I have </p> <pre><code>ArrayList favorite_list = (ArrayList) appState.favorite_list; setListAdapter(new ArrayAdapter&lt;String&gt;(this, R.layout.favorites, favorite_list)); </code></pre> <p>Whenever I click the Favorites Tab, the app force closes. Any help is appreciated. Thanks, Justin</p> <p>Edit: LogCat</p> <pre><code>03-05 21:25:12.996: E/AndroidRuntime(5485): FATAL EXCEPTION: main 03-05 21:25:12.996: E/AndroidRuntime(5485): java.lang.RuntimeException: Unable to start activity ComponentInfo{vartanian.android.epicmealtimepro/vartanian.android.epicmealtimepro.Favorites}: java.lang.ClassCastException: java.util.TreeSet cannot be cast to java.util.ArrayList 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.app.ActivityThread.startActivityNow(ActivityThread.java:1797) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:682) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.widget.TabHost.setCurrentTab(TabHost.java:346) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:150) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:540) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.view.View.performClick(View.java:3511) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.view.View$PerformClick.run(View.java:14105) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.os.Handler.handleCallback(Handler.java:605) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.os.Handler.dispatchMessage(Handler.java:92) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.os.Looper.loop(Looper.java:137) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.app.ActivityThread.main(ActivityThread.java:4424) 03-05 21:25:12.996: E/AndroidRuntime(5485): at java.lang.reflect.Method.invokeNative(Native Method) 03-05 21:25:12.996: E/AndroidRuntime(5485): at java.lang.reflect.Method.invoke(Method.java:511) 03-05 21:25:12.996: E/AndroidRuntime(5485): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 03-05 21:25:12.996: E/AndroidRuntime(5485): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 03-05 21:25:12.996: E/AndroidRuntime(5485): at dalvik.system.NativeStart.main(Native Method) 03-05 21:25:12.996: E/AndroidRuntime(5485): Caused by: java.lang.ClassCastException: java.util.TreeSet cannot be cast to java.util.ArrayList 03-05 21:25:12.996: E/AndroidRuntime(5485): at vartanian.android.epicmealtimepro.Favorites.onCreate(Favorites.java:27) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.app.Activity.performCreate(Activity.java:4465) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 03-05 21:25:12.996: E/AndroidRuntime(5485): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 03-05 21:25:12.996: E/AndroidRuntime(5485): ... 18 more </code></pre> <p>Application Class:</p> <pre><code>public class Data extends Application { public Set&lt;String&gt; favorite_list = new TreeSet&lt;String&gt;(); } </code></pre> <p>ListView Class:</p> <pre><code>public class Favorites extends ListActivity { /** Called when the activity is first created. */ @SuppressWarnings("unchecked") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Data appState = ((Data)this.getApplication()); if(appState.favorite_list.isEmpty() == true){ appState.favorite_list.add("None"); } ArrayList favorite_list = (ArrayList) appState.favorite_list; setListAdapter(new ArrayAdapter&lt;String&gt;(this, R.layout.favorites, favorite_list)); ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView&lt;?&gt; 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(); } }); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload