A
Angelnoir
Neues Mitglied
- 1
Hallo,
Ich habe folgendes Problem:
Ich starte eine Activity, GameActivity, von einer anderen. Dann lasse ich ein Layout mit einer von SurfaceView abgeleiteten Klasse anzeigen. Funktioniert soweit gut.
Jetzt versuche ich allerdings dieses SurfaceView von GameActivity aus zu finden, das gelingt mir nicht. Eigentlich habe ich so etwas schonmal gemacht, ich finde den Fehler aber nicht.
Minimalbeispiel:
GameActivity
GameView
game_layout.xml
Manifest:
Der Button ist nur zu Testzwecken. Die Ausgabe ist dann nur "Couldn't find View".
Habe schon versucht die ID zu ändern, etc. Auch habe ich versucht das View erst später zu finden, wenn ein Touchevent ausgeführt wird.
Es ist das erste Mal, dass ich händisch etwas am Manifest geändert habe, deswegen habe ich die Vermutung, dass der Fehler dort liegt.
Vielen Dank für Eure Mühen!
LG Angelnoir
Ich habe folgendes Problem:
Ich starte eine Activity, GameActivity, von einer anderen. Dann lasse ich ein Layout mit einer von SurfaceView abgeleiteten Klasse anzeigen. Funktioniert soweit gut.
Jetzt versuche ich allerdings dieses SurfaceView von GameActivity aus zu finden, das gelingt mir nicht. Eigentlich habe ich so etwas schonmal gemacht, ich finde den Fehler aber nicht.
Minimalbeispiel:
GameActivity
Code:
public class GameActivity extends Activity{
private GameView view;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game_layout);
view = (GameView) findViewById(R.id.game_view_1);
Button button = (Button) findViewById(R.id.button5)
if(view!=null)
//do something
else
Log.e("View", "Couldn't find View");
if(button==null)
Log.e("View", "Couldn't find Button also");
}
}
GameView
Code:
public class GameView extends SurfaceView implements SurfaceHolder.Callback {
//Holds the context for drawing process
private Context m_context;
public GameView(Context context,AttributeSet attrs) {
super(context);
this.m_context=context;
SurfaceHolder holder = getHolder();
holder.addCallback(this);
}
...
game_layout.xml
HTML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.angelnoir.levelup.GameView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/game_view_1"/>
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Button" />
</RelativeLayout>
Manifest:
HTML:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.angelnoir.levelup"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
<activity android:name=".MainActivity" android:label="@string/title_activity_main">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="GameActivity">
</activity>
</application>
</manifest>
Der Button ist nur zu Testzwecken. Die Ausgabe ist dann nur "Couldn't find View".
Habe schon versucht die ID zu ändern, etc. Auch habe ich versucht das View erst später zu finden, wenn ein Touchevent ausgeführt wird.
Es ist das erste Mal, dass ich händisch etwas am Manifest geändert habe, deswegen habe ich die Vermutung, dass der Fehler dort liegt.
Vielen Dank für Eure Mühen!
LG Angelnoir