1 Reply Latest reply on Apr 18, 2012 2:17 PM by moskito-x

    How to convert [object Object] to String

    ShannonODonnell

      I am building a small mobile app using the Adobe Flash Builder Launch Pad tool which generates sample code for you.

       

      So what I've done is had it create a simple database example.

       

      What THAT! does is, you enter some string value into an input field and click a button and when you do, a bunch of SQL is executed that creates a table (if it does not exist), inserts the record into a local table and then automatically retrieves that inserted value and loads it as the dataProvider to a list component.

       

      Works great!

       

      HOWEVER!!!....when experimenting with that...I want to pull the data from the local .db it creates/inserts into and load that value into a string, perhaps the ".text" property of an inputText field.

       

      So I've tried a bunch of different things to do this. I've tried clicking on the list item it automtically adds to and retrieving the .selectedItem valiue.

       

      I've tried storing the SQL-retrieved value into an ArrayCollection and then retrieving the value at using ArrayCollectionName.getItemAt(0).toString();

       

      No matter what I do, it comes back into my String variable as [Object object]

       

      This makes sense if you look at the bottom of this page where it shows what happens when you cast an Object to a String: http://tinyurl.com/24cbhxt .

       

      But there should be SOME WAY! for me to pull the value the user entered, which was written to the local .db, and put it into a String variable. Right? This seems like a very basic thing to do and in fact I routinely do this in PHP...I just cannot make it work with ActionScript in Flash Builder.

       

      Can someone please show me how to retrieve the string value from the local .db?

       

      I'm open to any solution. Once I see how to do it in one way, I will be able to understand how to do it any other way, I think.

       

      Below is the code sample that the Adobe Launch Pad tool generates as well as an example of how I try to get that value to put into a string variable.

       

      Thank you!

       

      ========================================================================

      The first three functions are what Launch Pad created for me and they work to load the value the user enters into a TextInput filed into the local .db and then reads it from the local .db and loads that into the dataProvider for the list.

       

      At the bottom is my attempt to get the .db value and put it into a simple TextInput string field.

       

       

      =======================

      protected function view1_viewActivateHandler(event:ViewNavigatorEvent):void

      {

      sqlConnection = new SQLConnection();

      sqlConnection.open(File.applicationStorageDirectory.resolvePath("giberish.db"));

      var stmt:SQLStatement = new SQLStatement();

      stmt.sqlConnection = sqlConnection;

      stmt.text = "CREATE TABLE IF NOT EXISTS giberish (label TEXT)";

      stmt.execute();

      getAllGiberish();

      }

       

      protected function getAllGiberish():void

      {

      var stmt:SQLStatement = new SQLStatement();

      stmt.sqlConnection = sqlConnection;

      stmt.text = "SELECT label FROM giberish";

      stmt.execute();

      list1.dataProvider = new ArrayCollection(stmt.getResult().data);

      }

       

      protected function onAdd():void

      {

      var stmt:SQLStatement = new SQLStatement();

      stmt.sqlConnection = sqlConnection;

      stmt.text = "INSERT into giberish values(:giberish)";

      stmt.parameters[":giberish"] = g.text;

      stmt.execute();

      getAllGiberish();

      g.text = "";

      }

       

      ==================== All of the above works!==================

       

      Here is how I try to pull the value into a String. Note: lb2.text is a TextInput field.

       

      list2.dataProvider = new ArrayCollection(stmt.getResult().data);

       

      lb2.text = String(list2.dataProvider.getItemAt(0));

       

      // That puts [Object object] into lb2.text rather than the value of, say, "data_Input_By_Me"

        • 1. Re: How to convert [object Object] to String
          moskito-x

          lb2.text = String(list2.dataProvider.getItemAt(0)); // Kind of Data as a String      String([Object object]);

          This is a cast you tell the compiler to set [Object object] to lb2.text ::: getItemAt(0) will return the kind of the item and that's a "Object". You can not set a Object to a String and so you make a cast and translate

          Object to "Object". That can be stored in the lb2.text.

           

          lb2.text =list2.dataProvider.getItemAt(0).toString();

          Now You tell the compiler to get the value of the Object dataProvider as an string  getItemAt(0).toString() // Data content

           

          hope that's ok