Java 如何在不扩展活动的情况下使用编辑文本
我正在做一个游戏,试图让键盘在他们触摸某个区域时弹出。 我已经在扩展一个名为Screen的类,无法扩展我知道的有关编辑文本的活动,但不适用于我。他们有别的办法吗?或者,除非你能让编辑文本在这里工作,因为我一直在尝试,但没有运气。`package com.rmjr42.math4kidzJava 如何在不扩展活动的情况下使用编辑文本,java,android,Java,Android,我正在做一个游戏,试图让键盘在他们触摸某个区域时弹出。 我已经在扩展一个名为Screen的类,无法扩展我知道的有关编辑文本的活动,但不适用于我。他们有别的办法吗?或者,除非你能让编辑文本在这里工作,因为我一直在尝试,但没有运气。`package com.rmjr42.math4kidz import java.util.List; import android.graphics.Color; import android.graphics.Paint; import android.os.Loo
import java.util.List;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Looper;
import android.widget.EditText;
import com.rmjr42.framework.Game;
import com.rmjr42.framework.Graphics;
import com.rmjr42.framework.Image;
import com.rmjr42.framework.Screen;
import com.rmjr42.framework.Graphics.ImageFormat;
import com.rmjr42.framework.Input.TouchEvent;
public class GameScreenCount extends Screen {
//Math4Kidz keyboard=new Math4Kidz();
// EditText text;
//Surface s=new Surface();
enum GameState {
Ready, Running, Paused, GameOver
}
GameState state = GameState.Ready;
// Variable Setup
Paint paint, paint2;
public GameScreenCount(Game game) {
super(game);
// Looper.prepare();
// Initialize game objects here
Graphics g = game.getGraphics();
NewImage pic=new NewImage();
Assets.background = g.newImage(pic.randombackground(), ImageFormat.RGB565);
//get one random
Assets.pic1=g.newImage(pic.singleImage(),ImageFormat.RGB565);
// Defining a paint object
paint = new Paint();
paint.setTextSize(70);
paint.setTextAlign(Paint.Align.CENTER);
paint.setAntiAlias(true);
paint.setColor(Color.WHITE);
paint2 = new Paint();
paint2.setTextSize(100);
paint2.setTextAlign(Paint.Align.CENTER);
paint2.setAntiAlias(true);
paint2.setColor(Color.WHITE);
}
@Override
public void update(float deltaTime) {
List<TouchEvent> touchEvents = game.getInput().getTouchEvents();
if (state == GameState.Ready)
updateReady(touchEvents);
if (state == GameState.Running)
updateRunning(touchEvents, deltaTime);
if (state == GameState.Paused)
updatePaused(touchEvents);
if (state == GameState.GameOver)
updateGameOver(touchEvents);
}
private void updateReady(List<TouchEvent> touchEvents) {
state = GameState.Running;
}
private void updateRunning(List<TouchEvent> touchEvents, float deltaTime) {
// 1. All touch input is handled here:
int len = touchEvents.size();
Graphics g = game.getGraphics();
for (int i = 0; i < len; i++) {
TouchEvent event = touchEvents.get(i);
if (event.type == TouchEvent.TOUCH_UP) {
if (inBounds(event, 300, 100, 200, 200)) {
//Looper.prepare();//EDIT TEXT SHOULD GO HERE
//game.setScreen(new GameScreenCount(game));
}
}
}
}
private boolean inBounds(TouchEvent event, int x, int y, int width,
int height) {
if (event.x > x && event.x < x + width - 1 && event.y > y
&& event.y < y + height - 1)
return true;
else
return false;
}
private void updatePaused(List<TouchEvent> touchEvents) {
int len = touchEvents.size();
for (int i = 0; i < len; i++) {
TouchEvent event = touchEvents.get(i);
if (event.type == TouchEvent.TOUCH_UP) {
if (inBounds(event, 0, 0, 800, 240)){
if (!inBounds(event, 0, 0, 35, 35)){
resume();}
}
if (inBounds(event, 0, 240, 800, 240)){
nullify();
goToMenu();
}
}
}
}
private void updateGameOver(List<TouchEvent> touchEvents) {
int len = touchEvents.size();
for (int i = 0; i < len; i++) {
TouchEvent event = touchEvents.get(i);
if (event.type == TouchEvent.TOUCH_DOWN) {
if (inBounds(event, 0, 0, 800, 480)) {
nullify();
game.setScreen(new MainMenuScreen(game));
return;
}
}
}
}
@Override
public void paint(float deltaTime) {
Graphics g = game.getGraphics();
g.drawImage(Assets.background, 0, 0);
g.drawImage(Assets.pic1, 300, 100);
g.drawString("How many are there ? ", 400, 400, paint);
// Secondly, draw the UI above the game elements.
if (state == GameState.Paused)
drawPausedUI();
if (state == GameState.GameOver)
drawGameOverUI();
}
private void nullify() {
paint = null;
// Call garbage collector to clean up memory.
System.gc();
}
private void drawPausedUI() {
Graphics g = game.getGraphics();
// Darken the entire screen so you can display the Paused screen.
g.drawARGB(155, 0, 0, 0);
g.drawString("Resume", 400, 165, paint2);
g.drawString("Menu", 400, 360, paint2);
}
private void drawGameOverUI() {
Graphics g = game.getGraphics();
g.drawRect(0, 0, 1281, 801, Color.BLACK);
g.drawString("GAME OVER.", 400, 240, paint2);
g.drawString("Tap to return.", 400, 290, paint);
}
@Override
public void pause() {
if (state == GameState.Running)
state = GameState.Paused;
}
@Override
public void resume() {
if (state == GameState.Paused)
state = GameState.Running;
}
@Override
public void dispose() {
}
@Override
public void backButton() {
pause();
}
private void goToMenu() {
// TODO Auto-generated method stub
game.setScreen(new MainMenuScreen(game));
}
}
import java.util.List;
导入android.graphics.Color;
导入android.graphics.Paint;
导入android.os.Looper;
导入android.widget.EditText;
导入com.rmjr42.framework.Game;
导入com.rmjr42.framework.Graphics;
导入com.rmjr42.framework.Image;
导入com.rmjr42.framework.Screen;
导入com.rmjr42.framework.Graphics.ImageFormat;
导入com.rmjr42.framework.Input.TouchEvent;
公共类GameScreenCount扩展了屏幕{
//Math4Kidz键盘=新的Math4Kidz();
//编辑文本;
//曲面s=新曲面();
枚举配子状态{
准备、运行、暂停、游戏结束
}
GameState=GameState.Ready;
//变量设置
油漆油漆,油漆2;
公共游戏屏幕计数(游戏){
超级(游戏);
//Looper.prepare();
//在这里初始化游戏对象
Graphics g=game.getGraphics();
NewImage pic=newnewimage();
Assets.background=g.newImage(pic.randombackground(),ImageFormat.RGB565);
//随机得到一个
Assets.pic1=g.newImage(pic.singleImage(),ImageFormat.RGB565);
//定义绘制对象
油漆=新油漆();
油漆.尺寸(70);
paint.setTextAlign(paint.Align.CENTER);
paint.setAntiAlias(真);
油漆。设置颜色(颜色。白色);
油漆2=新油漆();
油漆2.设置尺寸(100);
paint2.setTextAlign(Paint.Align.CENTER);
paint2.setAntiAlias(真);
油漆2.setColor(颜色为白色);
}
@凌驾
公共无效更新(浮动增量时间){
List touchEvents=game.getInput().getTouchEvents();
if(state==GameState.Ready)
更新日期(touchEvents);
if(state==GameState.Running)
更新规划(touchEvents,deltaTime);
如果(状态==游戏状态。暂停)
UpdatePause(触摸事件);
if(state==GameState.GameOver)
updateGameOver(触摸事件);
}
私有void updaterady(列出touchEvents){
状态=游戏状态。正在运行;
}
私有无效更新规划(列出touchEvents、float deltaTime){
//1.所有触摸输入均在此处处理:
int len=touchEvents.size();
Graphics g=game.getGraphics();
对于(int i=0;ix&&event.xy
&&事件y
这需要大量的工作,特别是如果你想很好地使用任何键盘的话。
android.view.inputmethod.InputMethod