Compare the index of each char in a string in an alphabet array to a range of numbers
There are two alternatives I can recommend, one alternative avoids all the if/else/if cascading, and replaces it with a single 'switch' statement. Switch statements are optimized at compile time so that, effectively, each char/operation takes as long as any other. it makes sense to extract that to a function too.
The second alternative is to trade code space, for memory space.
First though, improving your current solution...
Current version
Your current version has a lot of unnecessary conditions in the cascading if/else system.
If you check for 'low' values first, then you can assume the next value's lower range is already handled. It is easier to explain this by example.... you have:

if (index &gt;= 0 &amp;&amp; index &lt;= 2) {
    currentButton = 2;
} else if (index &gt;= 3 &amp;&amp; index &lt;= 5) {
    currentButton = 3;
} else if (index &gt;= 6 &amp;&amp; index &lt;= 8) {


But this will produce the same results, with half the comparisons:
if (index &lt; 0)
{
    currentButton = 1; //invalid index, char not found?
}
else if (index &lt;= 2)
{
    currentButton = 2;
}
else if (index &lt;= 5)
{
    currentButton = 3;
}
else if (index &lt;= 8)
{

Note how I have also used the conventional C# style there for the braces....
1. Switch:
A switch statement can work on chars:
switch (currentLetter)
{
    case 'a':
    case 'b':
    case 'c':
        return 2;
    case 'd':
    case 'e':
    case 'f':
        return 3;
    .....
    default:
        return 1; // whatever you need for an invalid char
}

The above code (included in a function) will encode each char to a key, and unmapped chars will return 1.
2. In memory lookup
A second common way to do this is to prepopulate an array with the indexes for each char:
int[] keys = new int[]{2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9};

Then use that array as a simple lookup:
if (currentChar &lt; 'a' || currentChar &gt; 'z')
{
    return 1;
}
return keys[currentChar - 'a'];

That converts the char to an offset in the keys array. I have taken the liberty of coding this up in Ideone to ensure it works (which it does, except for the handling of space characters)