[英]How to create GUI in Android instead of using XML?
我不喜欢一起管理XML
和Java
,我可以使用Java
语言创建相同的GUI吗? 我怎么能这样做,你能告诉我简单Button
代码吗? 我会很感激你的答案。
是的你可以。
public class MyActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
final Button button = new Button(this);
button.setText("Press me!");
setContentView(button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
}
}
我可以使用Java语言创建相同的GUI吗?
是的,你可以用@dtmilano的答案在Java
代码中创建GUI,但一般来说这对Android
应用程序来说不是一个好习惯。 在小型应用程序的情况下很容易,但如果您要为最终用户开发应用程序,则必须使用XML文件创建GUI。 当您希望开发针对具有不同显示尺寸和不同语言的多个设备的应用程序时,它也很有用。
最佳实践是尽量避免使用Java
创建GUI,而是尽可能多地使用XML
。
我发现这篇文章很有用也许对你有好处在java Code中创建一个Android用户界面
首先,您需要为此布局创建一个对象
RelativeLayout myLayout = new RelativeLayout(this);
然后像这样创建你的示例按钮
Button myButton = new Button(this);
然后需要将Button视图作为子项添加到RelativeLayout视图,而RelativeLayout视图又通过调用活动实例的setContentView()方法来显示
myLayout.addView(myButton);
setContentView(myLayout);
启动后,可见结果将是一个按钮,其中不包含出现在RelativeLayout视图左上角的文本。
绝对可以使用java设计Android UI。 这是创建Button的一个小例子。
跟着这些步骤
这是代码
package com.example.vmbck.app3;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//create layout
RelativeLayout myLayout = new RelativeLayout(this);
//set background color of the layout to Green
myLayout.setBackgroundColor(Color.GREEN);
//create button
Button myButton = new Button(this);
//set button's background color to red
myButton.setBackgroundColor(Color.RED);
//set button's text to Click Me
myButton.setText("Click Me");
//add button to layout
myLayout.addView(myButton);
//View the content
setContentView(myLayout);
}
}
如果您正在使用Eclipse,则可以从项目中转到文件夹res / layout,在那里您将找到文件main.xml右键单击此文件并选择使用/ Android布局编辑器打开在那里您将看到一个图形工具,它将生成所有这些需要包含在main.xml文件中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.