我有一个示例活动,可以在按钮点击时在数组中显示三个图表。
我现在要做的是根据按钮点击每次点击按钮更新原始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);
}
});
但是如果是字符串,我该如何做?我想知道是否有一种方法可以将其编码为按钮单击“一个”然后显示相关文本,然后在按钮上单击“两个”显示相关文本。原始文本显示告诉用户该做什么,然后我想要每次单击按钮时,都会在图表下方更改文本字符串。因此,三个图表中的每一个都会有匹配的字符串。
我不确定你是否可以通过计算按钮点击来实现它,还是有更好的方法?
答案 0 :(得分: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。
答案 1 :(得分:0)
虽然你的问题是谈论改变文本视图,但看起来你已经弄明白了。只需删除setContentView(textView)
,(因为这将取代整个视图),您的方法就可以正常使用。
如果您还询问如何将整数转换为拼写出来的字符串:
在strings.xml中,创建所有拼写的字符串。然后创建一个帮助器方法以从整数中获取String:
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);
}
答案 2 :(得分: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;
}
}