单击按钮时如何输出到控制台?单击此按钮时,为什么文本不会更改?

时间:2012-01-07 14:51:47

标签: android

public class HelloWorldActivity extends Activity {
    private TextView myText;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myText = new TextView(this);
        myText.setText("Hello World");
        Button btn1 =  new Button(this);
        btn1.setText("Click here mofo");
        btn1.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                changeText();

            }
        });

        setContentView(myText);
        setContentView(btn1);
    }


    public void changeText()
    {
        myText.setText("Changed");
    }
}

2 个答案:

答案 0 :(得分:0)

您可以使用Android Logger打印文本:Log

Log.i(MY_TAG, "hello world");

您可以使用logcat查看输出。如果您正在使用eclipse,则只需打开logcat视图并过滤日志标记。

您看不到文字更改,因为您的活动中只能有一个内容视图。

setContentView(myText); // content view set to myText
setContentView(btn1); // content view set to btn1, myText is no longer visible

如果您想展示myTextbtn1,则必须使用布局。 This可以帮助您了解布局。

答案 1 :(得分:0)

Log.i或Lod.d可以输出到LogCat

我的示例按钮中的

在xml文件中定义。

public class StackActivity extends Activity {

    Button button1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button1 = (Button) findViewById(R.id.button1);
        button1.setText("Before");
        button1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Log.d("YOUR TAG", "Hey You Just Clicked Me!");
                button1.setText("After");
            }
        });

    }
}