我是开发应用程序的新手。我仍然会以为这是一个基本操作,因此,如果已经有一个已解决的线程,则可以使用该链接。但是由于我为此搜索了2个多小时,所以无论如何我都在问:
我想在用户每次单击按钮时将元素动态添加到布局中。
现在,我有了这个:
XML(R.layout.game.xml)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/submit_choice"
android:onClick="submitChoice"/>
</LinearLayout>
爪哇
public void submitChoice(View view)
{
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText("text");
LinearLayout ll = new LinearLayout(this);
ll.addView(View.inflate(ll.getContext(), R.layout.game, null));
ll.addView(textView);
setContentView(ll);
}
由于XML文件不会更改,因此只能运行一次。
那么,当用户第二次单击按钮时(不更改XML文件),如何添加第二个文本?示例被赞赏。
问题来自这一行,每次都会重新创建整个布局:
LinearLayout ll = new LinearLayout(this);
您应该setContentView(ll)
在submitChoice
功能之外定义它。然后,仅单击创建并添加textView
,然后调用ll.invalidate();
以查看更改。
就像是:
LinearLayout ll;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
ll = (LinearLayout) findViewById(R.id.ll_game);
}
// More code...
public void submitChoice(View view) {
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText("text");
ll.addView(textView);
ll.invalidate();
}
ll_game
您必须在xml中设置的ID在哪里LinearLayout
?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句