我想做一个基本的计数器。
这个想法是,用户按下按钮,应用程序显示按钮被按了多少次。
我的问题是,我不确定如何更新文本视图。我的理解是,它的XML部分检索字符串,这些字符串在运行时是固定的。那么,我应该如何"更新"最终"的东西呢?
我的理解是,当按下按钮时,我将num增加1。然后,它获得提示字符串(单击:%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);
}
});
}
}
任何帮助都会很感激。
你正在设置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)
}
}
clickhere.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
num++;
tView.setText(Integer.toString(num));
}
});
这将设置你的textview等于num