[英]How do I get back to my gl screen in android. I have tried to jump out and use an xml layout in my code
好的,我已經瀏覽過這個網站的所有地方,但沒有找到我的問題的答案。 我正在嘗試制作一款游戲,而且我需要從屏幕上獲取用戶信息。 我完成了整個游戲,只需要這部分就可以向前推進。 我將從屏幕類轉到xml布局,似乎無法回到我的屏幕類移動到游戲的下一部分。 使用布局似乎比構建我自己的文本框更容易。 這是我的代碼。
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import com.wright.knightsattack.framework.Game;
import com.wright.knightsattack.framework.gl.Camera2D;
import com.wright.knightsattack.framework.gl.SpriteBatcher;
import com.wright.knightsattack.framework.impl.GLScreen;
import com.wright.knightsattack.framework.math.Vector2;
public class NewCharacterInfo extends GLScreen
{
EditText Name, Strength, Dexterity, Agility, Intelligence, Charisma;
RadioButton Sex;
int intStrength, intDexterity, intAgility, intIntelligence, intCharisma;
Button Done_BTN;
Camera2D guiCam;
SpriteBatcher batcher;
Vector2 animPoint;
Game gameIn;
Activity activity;
Intent gameIntent;
Boolean enterInfo = true;
public NewCharacterInfo(Game game)
{
super(game);
gameIn = game;
activity = (Activity) game;
}
@Override
public void resume()
{
}
@Override
public void update(float deltaTime)
{
if (enterInfo == true)
{
runInfo();
} else
{
newScreen();
return;
}
}
public void runInfo()
{
activity.runOnUiThread(new Runnable()
{
public void run()
{
activity.setContentView(R.layout.new_character_info);
Name = (EditText) activity.findViewById(R.id.editTextName);
Sex = (RadioButton) activity.findViewById(R.id.radioButton1);
Strength = (EditText) activity.findViewById (R.id.editTextStrength);
Dexterity = (EditText) activity.findViewById(R.id.editTextDexterity);
Agility = (EditText) activity.findViewById(R.id.editTextAgility);
Intelligence = (EditText) activity.findViewById(R.id.editTextIntelligence);
Charisma = (EditText) activity.findViewById(R.id.editTextCharisma);
Done_BTN = (Button) activity.findViewById(R.id.done);
Done_BTN.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Log.e("Click check", "Inside");
if (v.getId() == R.id.done)
{
Log.e("Click check", "Try to change screen");
intStrength = Integer.parseInt(Strength.getText().toString());
intDexterity = Integer.parseInt(Dexterity.getText().toString());
intAgility = Integer.parseInt(Agility.getText().toString());
intIntelligence = Integer.parseInt(Intelligence.getText().toString());
intCharisma = Integer.parseInt(Charisma.getText().toString());
Settings.addCharacterStats(Name.getText().toString(), Sex.getText().toString(), 0, 0, 0, 0, 200, intStrength, intIntelligence, intDexterity, intAgility, intCharisma, 0, 0, 0, 0, 0, 0);
// gameIntent = activity.getIntent();
enterInfo = false;
update(0);
return;
}
}
});
}
});
}
public void newScreen()
{
Settings.save(gameIn.getFileIO());
gameIn.setScreen(new SplashHelmScreen(gameIn));
Log.e("", "check" + gameIn);
return;
}
@Override
public void present(float deltaTime)
{
}
@Override
public void pause()
{
}
@Override
public void dispose()
{
}
}
將彈出xml屏幕,我可以在所有文本框中輸入信息,但是當點擊完成按鈕時它會給出錯誤,這是我從logcat獲得的錯誤。
01-09 11:04:38.038: E/libEGL(1743): call to OpenGL ES API with no current context (logged once per thread)
感謝任何幫助,我真的很感激,我已經花了幾天時間。
沒關系,我修好了,我剛剛創建了一個新的意圖,然后當輸入信息時,我在活動上調用finish()並跳轉到我當前的屏幕。
如果你想回到主屏幕,你有兩種可能:
@Override
public void onBackPressed() {
}
或者如果你有一個按鈕:
按鈕btn =(按鈕)findViewById(R.id.btn); btn.setonClickListener(本);
@Override public void onClick(View v){
switch (v.getId()) {
case R.id.btn:kill_activity(); 打破;
}}
void kill_activity(){
完();
}
干杯,
沒關系,我修好了,我剛剛創建了一個新的意圖,然后當輸入信息時,我在活動上調用finish()並跳轉到我當前的屏幕。
public void newScreen()
{
game = MainMenuScreen.globalGame;
Settings.save(game.getFileIO());
game.setScreen(new SplashHelmScreen(game));
this.finish();
Log.e("", "check" + game);
return;
}
這會直接回到我的游戲中。 對不起我很久以前回答過這個問題,沒想到我必須回到這里來回答。 認為更新處理了這一點。 感謝所有試圖幫助的人!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.