Java 将XML与活动一起使用';s setContentView()
我是一名业余开发人员,创建了一个短应用程序,但在使用特定活动的XML文件和活动的Java方法“setContentView”时遇到了问题。我需要这个方法,因为我是通过计算生成数字的,生成的数字是可变的,取决于不同的参数。因此,每次调用计算时,我必须调用:Java 将XML与活动一起使用';s setContentView(),java,android,numbers,Java,Android,Numbers,我是一名业余开发人员,创建了一个短应用程序,但在使用特定活动的XML文件和活动的Java方法“setContentView”时遇到了问题。我需要这个方法,因为我是通过计算生成数字的,生成的数字是可变的,取决于不同的参数。因此,每次调用计算时,我必须调用: textView.setText(message + " is " + output); setContentView(textView); 但是我也在活动的XML页面上创建了几个按钮,我也想在活动的页面上显示这些按钮。例如,这是我创建的按钮
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" />
在我前面提到的为变量文本消息设置内容视图之后,XML文件将覆盖文本消息,如果我以相反的方式调用两个setContentView方法,文本消息将永远不会显示,反之亦然。如何让它们同时在活动屏幕上呈现?在活动\u compute\u number.xml中,您应该为按钮和文本视图分配一个id。通过这种方式,您可以引用按钮和文本视图
<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" />
在onCreate()方法中,通过只调用一次setContentView(),设置视图以显示活动\u compute\u number.xml中的布局。您可以通过指定您在xml中设置的id来引用按钮和文本视图。请阅读该方法的文档
在
onCreate()
方法中,您只能使用setContentView()
一次。因此,您应该在XML文件中添加一个TestView
,或者可以在活动中使用这个TextView txt=new TextView(this)
在onCreate()方法中应该只调用setContentView()一次,我不太清楚您要实现什么。
<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" />
@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);
}
});
}