Game.java라는 사용자 정의보기를 만들었습니다.
public class Game extends View {
public Game(Context context, AttributeSet attrs) {
//here goes class
public void shot(){
}
//method I want to use sometime
}
다음은 Activity game.xml의 레이아웃 파일 일부입니다.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".GameActivity" >
<com.vladdrummer.textmaster.Game
android:id="@+id/game"
android:layout_width="wrap_content"
android:windowSoftInputMode="adjustResize"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<View
android:id="@+id/spareview"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true" />
등등. 그래서 활동에서 나는 단순히
setContentView(R.layout.game);
그리고 화면의 일부로 Game.java라는 사용자 정의 View 클래스가 있습니다.
하지만 어떻게해야합니까? 만약 내가한다면 :
Game game;
game =(Game) findViewById(R.id.game);
game.shot();
그것은 충돌합니다.
물론 할 수 있습니다.
Game game=new Game(this)
setContentView(game);
충돌하지 않도록 게임에 액세스 할 수 있지만 화면에 다른 요소도 필요합니다.
올바른 방법을 알려주세요
당신은 할 수 있습니다 RelativeLayout
또는 LinearLayout
귀하의 XML로하고 당신이 원하는 어느 곳 놓습니다. xml에서 다른 뷰를 가질 수도 있습니다. 이것은 한 가지 방법입니다
setContentView(R.layout.yourlayout); // infalte layout
RelativeLayout rl =(RelativeLayout) findViewById(R.id.relativeLayout);// initialize
Game game=new Game(this);
rl.addView(game); // ad view to container
그러나 레이아웃에 사용자 정의보기가 있습니다. 에 생성자가 없습니다 GameView
. 귀하의 방법도 작동합니다
4 장 Retro Meier Professional Android Devleopment의 사용자 인터페이스 만들기를 읽어보세요.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다