2012-07-29 12 views
5

私はAndroidのゲームプログラミングに参加する意志でいくつかの同僚のJavaを教えています。画面上にボックスを表示する方法はありますか?それをタッチするとアクティビティを作成せずに色を変えます(これはEclipse版です)。そしてXMLの醜い世界に飛び込みますか?XMLなしのシンプルなAndroidアプリ

+0

なぜですか? XMLは簡単です。その楽しい! – Ahmad

+1

まあ、それは簡単ですし、あなたにとっては簡単ですが、難しいだけでなく、醜い醜い人のために(技術的に精通した、コンピューターに精通した)非プログラマーの2人を教えています。 –

+3

Swingのようなアンドロイドを扱うと、目に見えないレンガの壁に突き当たるでしょう。 – Shark

答えて

3

をあなたは

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を使用して奨励を要求されるように、プログラムでのAndroidのUIを作成するための一例です。理解してからXMLを使用する方がはるかに簡単で迅速です。したがって、hereはあなたのためのチュートリアルです。

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

私はあなたが言っていることを聞いています。はい、私はXMLが退屈であることに同意しますが、アンドロイドでゲームをコーディングしたいときには、XMLはアンドロイドの必需品です。少なくともViewStubをXMLに入れて、後でコード内で膨張させてください。

また、適切にフォーマットしたい場合は、多くの「新しいLayoutParams」呼び出しを呼び出すことに慣れてください。

しかし、Androidで動作させるには、あなたのクラスが実際にActivityを上書きする必要があります。

関連する問題