2013-06-25 29 views
-6

代码的Android问题的setContentView()

TextView textView = new TextView(this); 
textView.setTextSize(20); 
textView.append(mytime+ "-"); 

TextView textView2 = new TextView(this); 
textView2.setTextSize(20); 
textView2.setTextColor(-16776961); 
textView2.append(message); 

//set the text view as the activity layout 
setContentView(textView); 
setContentView(textView2); 

实际产出:消息。

我想输出的是mytime消息。
我该怎么做?

+0

创建一个线性布局,并在其中添加这两TextView的。和setContentView(linearlayout)。 –

+0

你可以使用一个spannable字符串并将文本追加到textview – Raghunandan

+0

先看一看android layout首先 - http://developer.android.com/guide/topics/ui/declaring-layout.html –

回答

1

您的第二个setContentView删除第一个,这就是为什么您只有message而不是mytime - message

要做你想做的事情,你需要添加一个容器setContentView,它本身可以容纳多个视图。

一个这样的容器是LinearLayout。你必须创建它,设置它的取向水平,并同时添加的TextView:

TextView textView = new TextView(this); 
textView.setTextSize(20); 
textView.append(mytime+ "-"); 

TextView textView2 = new TextView(this); 
textView2.setTextSize(20); 
textView2.setTextColor(-16776961); 
textView2.append(message); 

LinearLayout linear = new LinearLayout(this); 
// Not necessary as it's the default but useful to know 
linear.setOrientation(LinearLayout.HORIZONTAL); 
linear.addView(textView); 
linear.addView(textView2); 


//set the text view as the activity layout 
setContentView(linear); 
0
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    TextView textView1 = new TextView(this); 
    textView1.setTextSize(20); 
    textView1.append("myTime"+ "-"); 
    textView1.setGravity(Gravity.CENTER); 

    TextView textView2 = new TextView(this); 
    textView2.setTextSize(20); 
    textView2.setTextColor(-16776961); 
    textView2.append("message"); 

    LinearLayout layout = new LinearLayout(this); 
    layout.setOrientation(LinearLayout.HORIZONTAL); 
    layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 

    layout.setGravity(Gravity.CENTER); 

    layout.addView(textView1); 
    layout.addView(textView2); 


    setContentView(layout); 

}