嘿伙计们请帮助我,我是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>
知道该怎么做吗?
答案 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))