0

我有一个示例活动,可以在单击按钮时在数组中显示三个图表。

我现在要做的是根据按钮点击更新原始 TextView 字符串,每次点击按钮。我知道如何用这样的数字来做到这一点:

 tView = (TextView) findViewById(R.id.textView1);
    clickhere = (Button) findViewById(R.id.button1);

    clickhere.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            num++;
            String display = String.format(getString(R.string.prompt), num);
            tView.setText(display);
            setContentView(tView);

        }
    });

但是在字符串的情况下我该怎么做呢?我想知道有没有办法将其编码为按钮单击“一”然后显示相关文本,然后在按钮单击“二”显示相关文本。原始文本显示告诉用户该做什么,然后我想要每次单击按钮时图表下方的文本字符串都会更改。因此,三个图表中的每一个都会有一个匹配的字符串。

我不确定您是否可以通过计算按钮点击来实现它,还是有更好的方法?

图表活动

4

3 回答 3

0

将成员变量添加到名为 mButtonClicks 的活动中

private int mButtonClicks;

然后在按钮的onClick中,更新数字。

clickhere.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
        mButtonClicks++;
        String display = String.format(getString(R.string.prompt), mButtonClicks);
        tView.setText(display);

    }
});

我猜这段代码在你的 onCreate() 方法中。确保 mButtonClicks 是在该方法之外定义的。

于 2013-11-07T18:34:24.877 回答
0

尽管您的问题是关于更改文本视图,但看起来您已经弄清楚了。只需删除setContentView(textView), (因为它将替换您的整个视图),您的方法将正常工作。

如果您还询问如何将整数转换为拼写字符串:

在您的 strings.xml 中,创建所有拼写出来的字符串。然后创建一个辅助方法来从一个整数中获取一个字符串:

protected String integerToSpelledOutString(int anInt){
    int resource = 0;

    switch (anInt){
    case 1:
        resource = R.string.one;
        break;
    case 2:
        resource = R.string.two;
        break;
    /*etc. for all integers you want to support*/
    }

    return getString(resource);
}
于 2013-11-07T18:43:43.730 回答
0

在我的解决方案中,textview 仅由 NextButtone 处理。

private int clicks = 1;

tView = (TextView) findViewById(R.id.textView1);
clickhere = (Button) findViewById(R.id.button1);

clickhere.setOnClickListener(new View.OnClickListener() {
     public void onClick(View v) {             
         tView.setText(getMyString(clicks++));             
     }
 });

 public String getMyString(int variable){
     switch(variable){
         case 1:
             return YOUR_STRING_01;
             break;
         case 2:
             return YOUR_STRING_02;
             break;
         case 3:
             return YOUR_STRING_03;
             break;
     }
 }   
于 2013-11-07T18:57:29.153 回答