Android startActivity with intent不';行不通
我有一个倒计时,它显示了我想进入错误屏幕的时间 这是倒计时的代码Android startActivity with intent不';行不通,android,android-layout,android-event,Android,Android Layout,Android Event,我有一个倒计时,它显示了我想进入错误屏幕的时间 这是倒计时的代码 timer = new CountDownTimer(36000, 1000) { @Override public void onTick(long millisUntilFinished) { // TODOAuto-generated method stub remaingTimer.setText(millisU
timer = new CountDownTimer(36000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODOAuto-generated method stub
remaingTimer.setText(millisUntilFinished + "");
}
@Override
public void onFinish() {
// TODO Auto-generated methodstub
Intent goToMainTabs = new Intent(
"com.localizedbasedcompetition.FINISHTIME");
startActivity(goToMainTabs);
}
};
我想转到finishtime活动,这是finishtime活动的代码
public class FinishTime extends Activity implements OnClickListener{
Button backToMain;
TextView errorMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.finishtime);
initialize();
}
private void initialize() {
// TODO Auto-generated method stub
backToMain= (Button)findViewById(R.id.bFinishTimeBackToMain);
errorMessage=(Button)findViewById(R.id.tvFinishTime);
backToMain.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bFinishTimeBackToMain:
Intent goToMainTabs = new Intent(
"com.localizedbasedcompetition.MAINTABS");
startActivity(goToMainTabs);
break;
default:
break;
}
}
}
<activity
android:name=".FinishTime"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.localizedbasedcompetition.FINISHTIME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
这是finishtime活动的主要节日
public class FinishTime extends Activity implements OnClickListener{
Button backToMain;
TextView errorMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.finishtime);
initialize();
}
private void initialize() {
// TODO Auto-generated method stub
backToMain= (Button)findViewById(R.id.bFinishTimeBackToMain);
errorMessage=(Button)findViewById(R.id.tvFinishTime);
backToMain.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bFinishTimeBackToMain:
Intent goToMainTabs = new Intent(
"com.localizedbasedcompetition.MAINTABS");
startActivity(goToMainTabs);
break;
default:
break;
}
}
}
<activity
android:name=".FinishTime"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.localizedbasedcompetition.FINISHTIME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
您需要在倒计时上调用start()。否则它什么也做不了
根据您的异常,您在XML中定义了一个TextView
,您意外地将它转换为其他内容(是您的按钮
cast吗?),如果不看到XML就无法分辨,但这就是异常。确保在Java中正确引用视图,就像在XML中定义视图一样
哦,正如伊南所指出的,在你修复之后,清理你的项目以防万一。Eclipse有一种不经常更新此类内容的恶劣方式。我怀疑您需要在onFinish定义中调用super.onFinish()。另外,粘贴日志内容,以便我们可以看到您遇到的异常以及导致异常的原因。@Dr.Dredel您的意思是我必须进行
super.onFinish()
?但这种方法不可行exist@iNan,不,事实上是对的。使用intent name.change errorMessage=(Button)findviewbyd(R.id.tvFinishTime)时不需要上下文;to errorMessage=(TextView)findViewById(R.id.tvFinishTime);在初始化中,我确实这样做了,但我没有告诉你,我的问题是当计时器完成计数时,我可以看到计时器工作,并在屏幕上每隔1秒打印剩余时间,但是当没有剩余时间时,计时器调用finish方法,这里我得到了一个异常,我用例外项更新了问题,请参见我的编辑,然后给我绿色复选标记,欢迎使用Stack!:)是的,伙计,errorMessage是textView,但我将其转换为按钮:)谢谢,欢迎光临!堆栈跟踪是查找问题所在的好地方:)异常。这就是它的名字