文字列を固定長のチャンクに分割してArrayListに追加することはできません...以下のコードは期待どおりに繰り返されますが、最後のメッセージまでのすべてのmessageToSplit[]はnullです。最後のものには実際に値があります。
以下の例では、編集テキストが返された場合、「01234567890」、「」、「」、「890」の順になります。
Pattern p = Pattern.compile(".{4}");
ArrayList<String> myText = new ArrayList<String>();
String[] messageToSplit = TextUtils.split(myStringEditText.getText().toString(), p);
int x = 0;
while(x <= (myStringEditText.getText().toString().length() / 4)) {
Toast.makeText(getBaseContext(), x+": '" + messageToSplit[x] + "'", Toast.LENGTH_SHORT).show();
myText.add(messageToSplit[x]);
x++;
}