没有XML的简单Android应用程序

时间:2012-07-29 02:48:39

标签: java android

我正在教几个同事Java,意图进入Android游戏编程。有没有办法在屏幕上显示一个框,当你触摸它时它会改变颜色,而不创建一个Activity(这是在Eclipse中)并潜入丑陋的XML世界?

3 个答案:

答案 0 :(得分:3)

以下是您在Android中以编程方式创建UI的示例

public class MyActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Button changeColor = new Button(this);
        changeColor.setText("Color");
        changeColor.setLayoutParams(new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT));

        changeColor.setOnClickListener(new View.OnClickListener() {
            int[] colors = {Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW};
            @Override
            public void onClick(View view) {
                final Random random = new Random();
                view.setBackgroundColor(colors[random.nextInt(colors.length - 1) + 1]);
            }
        });
        setContentView(changeColor);
    }

但是,我强烈建议您使用XML进行布局。一旦理解了XML,就可以更容易,更快速地使用XML,因此here是一个教程。

答案 1 :(得分:1)

您可以以编程方式创建窗口小部件,并将它们添加到您在onCreate中设置为内容视图的布局中。有些事情可行:

RelativeLayout layout = new RelativeLayout(this);
Button btnChangeColour = new Button(this);
btnChangeColour.setText("Change Colour");
btnChangeColour.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        v.setBackgroundColor(...);
    }
});
layout.addView(btnChangeColour);
setContentView(layout);

答案 2 :(得分:1)

我听到你在说什么,是的 - 虽然我同意当你只想在android中编写游戏时XML很无聊 - 我可以说XML是android的必要之物。至少将ViewStubs放在XML中并稍后在代码中对它们进行充气。

或者习惯于调用许多“新的LayoutParams”调用,如果你想要它们正确格式化的话。

但如果您希望它在Android上工作,那么您的课程真的需要覆盖Activity。