如何在检查类文件中的条件后动态加载linearlayout?

时间:2011-04-22 20:44:24

标签: android android-emulator android-layout android-manifest

嘿伙计们请帮助我,我是Android应用程序开发的新手

这是scenerio:这是我的布局声明xml文件:

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

//下面的LinearLayout我需要在java类遇到某些条件时显示 即if(true)然后显示以下布局,否则不。我只有在用户提供一些输入后才能检查这种情况。

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

//跟随布局显示第一个布局。

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

知道该怎么做吗?

3 个答案:

答案 0 :(得分: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中,{{1}}用于添加小部件的行或列。

答案 1 :(得分:1)

您不能以编程方式替换整个布局,只是为了更改一个TextView中的文本。在android中处理这种事情的方法是在你的Activityview中为你的textview包含一个字段,然后在你调用setContentView()来加载布局之后用findViewById()在你的onCreate()方法中实例化它您可以访问TextView的字段和方法。

首先,TextView需要布局xml中的id。

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

}

希望能够实现这个想法。祝你好运!

答案 2 :(得分:0)

感谢Aleadam建议我阅读链接。 Follwoing是我获得输出的方法。

我所做的是在声明XML时将LinearLayout可见性指定为“GONE”(android:Visibility =“GONE”),在满足条件后的程序中,将可见性更改为“VISIBLE”。 (通过使用layout.setVisibility(View.VISIBLE))