2012-01-07 47 views
0
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"); 
    } 
} 
+0

該文本正在改變。你不能看到它,因爲你沒有使視圖無效。在'changeText()'方法中,在'myText.setText(「Changed」);'之後添加'invalidate();'。這會告訴Activity重繪自己。 – 2012-01-07 15:31:58

回答

0

您可以通過使用Android的記錄儀打印文本: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可以幫助你理解佈局。

+0

佈局顯然正在使用。此外,您不需要多個佈局來更改視圖的可見屬性。你只需要重新繪製它們。這可以手動完成或通過系統完成。 – 2012-01-07 15:34:04

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"); 
      } 
     }); 

    } 
} 
相關問題