单击按钮后更新TextView?

时间:2011-04-14 01:36:31

标签: android button textview counter

我正在尝试制作一个基本的计数器。

想法是用户按下按钮,应用程序显示按下按钮的次数。

我的问题是我不确定如何更新文本视图。我的理解是它的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);

        }
    });

} 
}

任何帮助将不胜感激。

2 个答案:

答案 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