2012-07-29 38 views
5

Tôi đang dạy một vài đồng nghiệp Java với ý định tham gia vào chương trình trò chơi Android. Có cách nào để hiển thị một hộp trên màn hình hay không và khi bạn chạm vào nó, nó thay đổi màu sắc, mà không cần tạo một Hoạt động (đây là trong Eclipse) và đi sâu vào thế giới xấu xí của XML?Ứng dụng Android đơn giản Nếu không có XML

+0

Tại sao? XML rất dễ. Điêu đo rât vui! – Ahmad

+1

Vâng, thật dễ dàng đối với tôi, và nó rất dễ dàng cho bạn, nhưng tôi đang dạy một vài người (không biết về kỹ thuật, hiểu biết về máy tính) không phải là người lập trình mà không chỉ khó khăn mà còn rất xấu xí. –

+3

sớm hay muộn bạn sẽ bắt đầu đánh những bức tường gạch vô hình nếu bạn đối xử với android như Swing. – Shark

Trả lời

3

Dưới đây là một ví dụ cho lập trình tạo giao diện người dùng trong Android như bạn yêu cầu

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); 
    } 

Tuy nhiên, tôi mạnh mẽ khuyến khích sử dụng XML để bố trí của bạn. Việc sử dụng XML dễ dàng hơn và nhanh hơn một khi bạn hiểu nó, vì vậy here là một hướng dẫn cho bạn.

1

Bạn có thể tạo tiện ích con theo chương trình và thêm chúng vào bố cục mà bạn đặt làm chế độ xem nội dung trong onCreate. Một cái gì đó dọc theo dòng này sẽ làm việc:

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); 
1

Tôi nghe những gì bạn đang nói, và có - trong khi tôi đồng ý rằng XML là nhàm chán khi bạn chỉ muốn mã trò chơi trong android - tôi có thể nói rằng XML là một điều ác cần thiết của Android. Ít nhất đặt ViewStubs trong XML và thổi phồng chúng trong mã sau này.

Hoặc sử dụng để gọi nhiều cuộc gọi "LayoutParams" mới nếu bạn muốn chúng được định dạng chính xác.

Nhưng lớp học của bạn thực sự cần ghi đè Hoạt động nếu bạn muốn nó hoạt động trên Android.

Các vấn đề liên quan