将TextSwitcher中的字符串添加到数组中

时间:2012-08-03 22:00:25

标签: android arrays string

我想将当前显示的字符串从TextSwitcher(字符串放在一个字符串数组中)放到其他字符串数组中,我不知道应该使用哪种方法,因为.getText没有为textSwitcher工作。

如何加载和添加字符串到现有但未在此活动字符串数组中使用?

我在互联网上找到了这种方法,为什么它不起作用?

Resources res = getResources();
String[] favorites = res.getStringArray(R.array.favorites);
String[] planets = res.getStringArray(R.array.planets_array);
String[] temp = new String[favorites.length+1];
System.arraycopy(favorites,0,temp,0,favorites.length);
temp[favorites.length] = planets[mCounter];
favorites = temp;

2 个答案:

答案 0 :(得分:3)

TextSwitcher实现为包含两个TextViews的容器。当您致电TextSwitcher.setText()时,它会在未显示的TextView上调用TextView.setText(),然后使用可选动画在它们之间切换。

虽然TextSwitcher没有公开getText()方法,但可以检索当前显示的TextView子项,然后在其上调用getText()以获取显示的文本:

TextSwitcher textSwitcher = findViewById(...);
TextView currentlyShownTextView = (TextView) textSwitcher.getCurrentView();
String currentlyShownText = textSwitcher.getText().toString();

答案 1 :(得分:0)

TextSwitcher未提供getText方法。因此,每次调用setText时,您都必须记住私有字段中的当前字符串。

class MyActivity extends Activity {
    String currentlyDisplayedText;
    String[] yourArray = new String[5];

    public void someMethod() {
        currentlyDisplayedText = "The new text";
        theTextSwitcher.setText(currentlyDisplayedText);
    }

    public void someOtherMethod() {
        yourArray[0] = currentlyDisplayedText;
    }
}