我正在尝试制作一个基本的计数器。
想法是用户按下按钮,应用程序显示按下按钮的次数。
我的问题是我不确定如何更新文本视图。我的理解是它的XML部分检索字符串,这些字符串在运行时设置。那么我该如何“更新”“最终”的东西呢?
我的理解是当按下按钮时,我将num递增1.然后,它获得提示字符串(Clicks:%d)并将其显示在屏幕上。但是,每当我运行它时,它就会崩溃。
public class HelloAndroid extends Activity{
/** Called when the activity is first created. */
int num = 0;
TextView tView;
Button clickhere;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
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 :(得分:4)
单击时设置TextView(而不是单击按钮时),我猜这不是你想要做的。我已经更新了下面的代码,以便在单击按钮时设置TextView。
public class HelloAndroid extends Activity{
/** Called when the activity is first created. */
int num = 0;
TextView tView;
Button clickhere;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tView = (TextView) findViewById(R.id.textView1);
clickhere = (Button) findViewById(R.id.button1);
clickhere.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String display = String.format(getString(R.string.prompt, Integer.toString(++num)));
tView.setText(display);
}
});
//you don't need an event handler on the TextView (given the description of the problem)
}
}
答案 1 :(得分:2)
clickhere.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
num++;
tView.setText(Integer.toString(num));
}
});
这会将textview设置为num