Ich will eine MessageBox, so wie unter Windows, nun habe ich folgendes versucht:
Bei InputStreamReader funktioniert es mit dem MeinContext, die Daten werden ohne Fehler eingelesen.
Aber bei AlertDialog.Builder geht der MeinContext nicht mehr.
Was mache ich falsch ?
Hier wird MeinContext mit einem Wert beschrieben.
Und hir ist er deklariert.
Bei InputStreamReader funktioniert es mit dem MeinContext, die Daten werden ohne Fehler eingelesen.
Aber bei AlertDialog.Builder geht der MeinContext nicht mehr.
Was mache ich falsch ?
Java:
class VectorBuffer {
public FloatBuffer Vector;
public FloatBuffer Normal;
public int VertexCount;
public float[] Color;
static int anzVertex;
public static void MessageBox(String Msg, String Title) {
AlertDialog.Builder dlgAlert = new AlertDialog.Builder(OpenGLES20Activity.MeinContext);
dlgAlert.setMessage("Meldung");
dlgAlert.setTitle("Titel");
dlgAlert.setPositiveButton("OK", null);
dlgAlert.setCancelable(true);
dlgAlert.create().show();
}
private float[] ReadVector(String Datei) {
int i = 0;
float[] vec = null;
try {
BufferedReader f = new BufferedReader(new InputStreamReader(OpenGLES20Activity.MeinContext.getAssets().open(Datei)));
String s = f.readLine();
anzVertex = Integer.parseInt(s);
vec = new float[anzVertex];
while ((s = f.readLine()) != null) {
float fl = Float.parseFloat(s);
vec[i] = fl;
i++;
}
f.close();
} catch (IOException e) {
Log.e(null, "Fehler beim Lesen der Datei", e);
}
MessageBox("Hello World", "Hello world");
return vec;
}
private FloatBuffer GetVectorBuffer(String Datei) {
float[] vectoren = ReadVector(Datei);
ByteBuffer bb;
FloatBuffer VectorBuffer;
bb = ByteBuffer.allocateDirect(vectoren.length * 4);
bb.order(ByteOrder.nativeOrder());
VectorBuffer = bb.asFloatBuffer();
VectorBuffer.put(vectoren);
VectorBuffer.position(0);
return VectorBuffer;
}
public VectorBuffer(String Datei, float[] col) {
Vector = GetVectorBuffer(Datei + "Vectoren.txt");
Normal = GetVectorBuffer(Datei + "Normale.txt");
VertexCount = anzVertex / 3;
Color = col;
}
}
Java:
public MyGLSurfaceView(Context context) {
super(context);
OpenGLES20Activity.MeinContext = context;
Java:
public class OpenGLES20Activity extends Activity {
private GLSurfaceView mGLView;
static Context MeinContext;
Zuletzt bearbeitet: