2012-08-31 72 views
0

我是一名業餘開發人員,正在創建一個簡短的應用程序,我無法將特定活動的XML文件與Activity的Java方法「setContentView」一起使用。我需要的方法,因爲我從計算生成數字和生成的數量是可變的取決於不同的參數。因此,每次我打電話的計算時間我得打電話:將XML與Activity的setContentView一起使用()

textView.setText(message + " is " + output); 
setContentView(textView); 

但我也創建活動的XML頁面上的幾個按鈕,這也是我所想顯示了活動的網頁上。例如,這是我創建的一個按鈕:

<Button 
    android:layout_marginTop="100dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/button_quit" 
    android:onClick=".quit" /> 

但是,如果我叫:

setContentView(R.layout.activity_compute_number); 

,因爲我前面提到的變量短信,XML文件覆蓋的設置內容視圖後如果我反過來調用兩個setContentView方法,則文本消息和文本消息從不出現,反之亦然。我如何讓他們同時在活動屏幕上呈現?

+0

你應該只在你的onCreate()方法中調用一次setContentView(),並且我不清楚你試圖完成什麼。 –

回答

1

在您的activity_compute_number.xml中,您應該爲您的按鈕和textview指定id。這樣你可以引用你的按鈕和textView。

<Button 
    android:id="@+id/button_compute" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="100dp" 
    android:onClick=".quit" 
    android:text="@string/button_quit" /> 

<TextView 
    android:id="@+id/textView_answer" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="100dp" /> 

通知的機器人:ID = 「@ + ID/button_compute」 和機器人:ID = 「@ + ID/textView_answer」。這給這個按鈕和文本視圖ID分別稱爲button_compute和textView_answer。

那麼你的onCreate更改爲以下:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button btnCompute = (Button)findViewById(R.id.button_compute); 
    TextView tvAnswer = (TextView)findViewById(R.id.textView_answer); 


    btnCompute.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      /* 
      * DO COMPUTATION here 
      */ 

      tvAnswer.setText(answer); 
     } 
    }); 
} 

的onCreate()方法設置視圖通過調用的setContentView()只有一次展現在你的activity_compute_number.xml佈局。你通過引用你的按鈕和文本視圖findViewById指定你在xml中設置的id。

0

請閱讀方法setContentView()的文檔。
onCreate()方法中,您只能使用setContentView()一次。因此,您應該在您的XML文件中添加TestView,或者在您的活動中使用此
TextView txt = new TextView(this)

相關問題