Array of hex values to string

How do I convert a hex number in array to a string variable?

 Serial.print(addr[i], HEX);             //this works -- EXAMPLE Outputs 28

 String AString = String(addr[i],HEX); 

 Serial.print (AString)                    //This does not work??? It Outputs  29 or some other nonsense

Thank You
Ron Derkis

rderkis:
How do I convert a hex number in array to a string variable?

You could do it easily if you would really use a string (char array, C-string, zero terminated string) variable and not one of those ineffective and in most cases useless and RAM-eating "String" objects.

'String' objects are bad in almost any case for usage in a microcontroller program.

They are not compatible with the standard AVR LIBC library.
Better avoid them and use strings (char arrays) instead.

Read this before posting a programming question

How is addr declared ? We don't know
How is the array populated ? We don't know

How do I convert a hex number in array to a string variable?

You are not using strings you are using Strings. There is a difference.

String AString = String(addr[i],HEX);

Did you invent this syntax and if so why ?
In any case the number in the array is not in HEX it is in binary and is only converted to HEX for display purposes.

In at least two different threads now,you have been pointed at sprintf (or snprintf) as a simple way to get a data array(presented as hex) into a string (character array representing hex).

Why are you searching for a solution which uses String objects?