首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在android上按下按钮的文本输出之间的切换

在android上按下按钮的文本输出之间的切换
EN

Stack Overflow用户
提问于 2016-01-11 20:25:06
回答 1查看 46关注 0票数 0

我试图让一个TextView和我的ImageSwitcher一起从一个句子切换到另一个句子。下面是我的活动的示例代码

代码语言:javascript
运行
复制
    private Integer images[]={R.drawable.image1,R.drawable.image2,R.drawable.image3,R.drawable.image4....};
private int currImage=0;
private Integer text[]={R.string.text0,R.string.text1,R.string.text2,R.string.text3,R.string.text4....};

@Override
     protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initializeImageSwitcher();
    setInitialImage();
    setImageRotateListener();

    setInitialText();

}


private void initializeImageSwitcher() {
    final ImageSwitcher imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitcher);
    imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
        @Override
        public View makeView() {
            ImageView imageView = new ImageView(MainActivity.this);
            return imageView;
        }
    });

    imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.right_in));
    imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.left_out));
}

private void setImageRotateListener() {
    final ImageButton rightarrow = (ImageButton) findViewById(R.id.next);
    rightarrow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            currImage++;
            if (currImage == 29) {
                currImage = 0;
            }
            setCurrentImage();
            setCurrentText();
        }
    });
}


private void setInitialImage() {
    setCurrentImage();
}

private void setInitialText(){
    setCurrentText();
}

private void setCurrentImage() {
    final ImageSwitcher imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitcher);
    imageSwitcher.setImageResource(images[currImage]);
}

private void setCurrentText() {
    final TextView textSwitcher = (TextView) findViewById(R.id.textView);
    textSwitcher.setText(Integer.toString(text[currImage]));
}

它编译并运行得很好。问题在于文本输出。TextView不显示字符串中定义的句子,而是显示一系列数字。

例如:

代码语言:javascript
运行
复制
  <string name="text1">Sentence one</string>
<string name="text2">Sentence two</string>
<string name="text3">Sentence three</string>
<string name="text4">Sentence four</string>

"text1“的输出为8513856,"text2”为841363,"text3“为18413587,依此类推。

如果有人知道如何解决这个问题,您的帮助将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-11 20:33:29

您显示的是字符串的资源id,而不是字符串本身。改为:

代码语言:javascript
运行
复制
private void setCurrentText() {
final TextView textSwitcher = (TextView) findViewById(R.id.textView);
textSwitcher.setText(getResources().getString(text[currImage]));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34730422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档