应用&问题说明 我们正在努力建立一个基于文本的安卓游戏(不要问;-)),而且我们有开始麻烦出于某种原因通过意图进行的新活动。我们的游戏以欢迎屏幕开始 - >新游戏(按钮) - >课程选择(两个按钮,侦探/凶手) - >第一个游戏活动Android的意图不会开始下一个活动
游戏活动将包含一个imageview,一个文本视图一个继续按钮(导致下一个活动),最常见的是后退按钮(布尔值,取决于游戏/故事情景)。
问题是,即使我们使用与从菜单到第一个游戏活动的代码几乎相同的代码,我们无法继续按钮开始下一个活动?我们的想法是,我们有布局模板和内容模板,并且我们可以创建新的活动,在这些活动中,我们只为图片资源设置变量,字符串资源,后退按钮的布尔值以及以下活动由“继续”开始。
代码 这是我们的代码:
的ContentTemplate:
package com.bsnoire;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class ContentTemplate extends Activity implements OnClickListener
{
protected int image, back, text;
protected Class<? extends Activity> cls;
@Override
public void onCreate(Bundle savedInstanceState)
{
setVariables();
super.onCreate(savedInstanceState);
setContentView(R.layout.content);
ImageView iv = (ImageView) findViewById(R.id.contentImageView);
TextView tv = (TextView) findViewById(R.id.contentTextView);
Button bBack = (Button) findViewById(R.id.contentbBack);
iv.setImageResource(image);
tv.setText(text);
bBack.setVisibility(back);
}
@Override
public void onDestroy()
{
this.finish();
}
//===============================================================================
@Override
public void onClick(View v)
{
switch(v.getId())
{
case R.id.contentbBack:
this.finish();
break;
case R.id.contentbCon:
Intent intent1 = new Intent(this, cls);
startActivity(intent1);
break;
}
}
public void setVariables()
{
}
}
ACT1(即活性1)
package com.bsnoire;
import com.bsnoire.R;
import android.app.Activity;
import android.os.Bundle;
public class Act1 extends ContentTemplate
{
/**
* Sets the variables in Act1
*/
@Override
public void setVariables()
{
image = R.drawable.p1;
back = 0;
text = R.string.A1S1;
cls = com.bsnoire.Act2.class;
}
}
ACT2将同为1,但与其他变量。在菜单中,我们使用下面的代码(开关功能)参考Act1:
case R.id.bAbout:
Intent intent2 = new Intent(MainMenu.this, Act1.class);
startActivity(intent2);
break;
哪个工作正常!
我们没有收到任何编译错误,也没有运行时错误。在Act1中按下“继续”时没有任何反应,除了手指点击时的绿色标记。
我应该提到,我们已经尝试了对Act1和Act2进行硬编码(删除了我们只需设置变量的'通用'方面,然后重复所有内容)。这导致了Act1中完全相同的静止状态。 – jhm
添加OnClickListener到你的按钮...,我认为你必须添加日志来查看你的onClick是否被调用。 –
谢谢,但尝试后,它没有帮助。此外,日志消息不会在logcat中显示,只会显示一些标准消息:“onTouchEvent”。 我们发现奇怪的是,当设备注册了触摸输入,但是不会写入我们的日志,它只是在声明并在侦听器中发送意图之前放置的。 (我们使用命令Log.d(“BSNoire”,“继续按钮点击”)) – jhm