1

嘿,夥計們,請幫我出我是新android應用開發如何在檢查類文件中的條件後動態加載linearlayout?

這裏是之情況:這是我的佈局聲明XML文件:

<LinearLayout xxx 
     <Textview aaa> 
      </TextView> 
</LinearLayout> 

//下面的LinearLayout我需要顯示時,在java類中遇到一些條件 ie if(true)then display the following layout else dont。我只能在用戶提供一些輸入後才能檢查這個條件。

<LinearLayout xxx 
     <Textview aaa> 
       To be displayed after the condition is checked 
      </TextView> 
</LinearLayout> 

//下面的佈局與第一個一起顯示。

<LinearLayout xxx 
     <Textview aaa> 
      </TextView> 
</LinearLayout> 

任何想法如何做到這一點?

回答

3

花點時間閱讀Android開發指南。這是值得的時間:http://developer.android.com/guide/topics/ui/index.html

基本上,你要使用的ID來指代的XML佈局:

android:id="@+id/myxmlid" 

,並在你的java文件:

LinearLayout ll = findViewById(R.id.myxmlid); 
if (yourCondition) 
    mainLayout.add(ll); 

我假設你想添加一個小部件到當前佈局,而不是隻改變當前TextView的文本。

此外,假定您想添加的不僅僅是一個新的TextView。如果您只需要這樣做,則無需將其包裝在LinearLayout中,該文件用於添加小部件的行或列。

+0

是的,我需要添加更多的TextView。感謝您的建議和迴應。 – Ritesh 2011-04-22 21:03:52

1

您不會以編程方式替換整個佈局,只是爲了更改一個TextView中的文本。在android中處理這種事情的方式是在你的Activity類中爲你的textview包含一個字段,然後在你調用setContentView()來加載佈局之後用findViewById()方法在onCreate()方法中實例化它您可以訪問TextView的字段和方法。

首先,你的TextView需要一個id在佈局xml中。

<TextView android:id="@+id/sometext" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" /> 
在活動

則...

TextView mTextView; 

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

    mTextView = (TextView) findViewById(R.id.sometext); 
} 

別的地方在節目...

public void myMethod(){ 

    mTextView.setText("Text says this now"); 

} 

希望跨有想法。祝你好運!

+0

+1 @Maximus,他的需求可能比我想象的要簡單。 – Aleadam 2011-04-22 21:01:19

+0

感謝您的提示resposne。所以現在,如果我需要在檢查條件後顯示佈局,我應該檢查myMethod中的密碼並設置文本,對嗎? – Ritesh 2011-04-22 21:01:50

+0

@Aleadam感謝這個+,我在想我的路線而不是添加,因爲他說有用戶交互會改變文本。可以隨着可見性變化太...嗯... – Maximus 2011-04-22 21:05:19

0

感謝Aleadam提示我閱讀該鏈接。 Follwoing是我的方法來獲得輸出。

我所做的是在分辨XML時將我的LinearLayout可見性分配給「GONE」(android:Visibility =「GONE」),並且在滿足條件後的程序中將可見性更改爲「可見」。 (通過使用layout.setVisibility(View.VISIBLE))