返回信息流做了个android的倒计时小程序。。
准备改造成可以用户输入倒计时秒数然后开始倒计时的模式。。
改造后代码如下。。。
package wdm.android.test.daojishi;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class DaojishiActivity extends Activity {
/** Called when the activity is first created. */
int i=10;
int inint;
Handler myhandler=null;
Message msg=null;
EditText input = (EditText)findViewById(R.id.input);
Button button = (Button)findViewById(R.id.button);
void clock(){
myhandler=new Handler(){
public void handleMessage(Message msg){
switch(msg.what){
case 100:
TextView a =(TextView)findViewById(R.id.textView1);
inint--;
a.setText(""+inint);
sendMessageDelayed(obtainMessage(100),1000);
break;
}
}
};
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
OnClickListener buttonlis= new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
inint=Integer.valueOf(input.getText().toString());
clock();
if(myhandler!=null)
msg = myhandler.obtainMessage(100);
if(msg!=null)
myhandler.sendMessageDelayed(msg, 1000);
}
};
//设置按钮事件监听
button.setOnClickListener(buttonlis);
}
}
然后一如既往的运行失败。。。
logcat报告:
唉。写个程序命途多舛啊。。
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #5516同步于 2012/3/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
【继续提问】介个。Handler放到按钮事件侦听器里面为什么又运行
EastDon
2012/3/7镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
EditText input = (EditText)findViewById(R.id.input);
Button button = (Button)findViewById(R.id.button);
这段代码放错地儿了!
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText input = (EditText)findViewById(R.id.input);
Button button = (Button)findViewById(R.id.button);
OnClickListener buttonlis= new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
inint=Integer.valueOf(input.getText().toString());
clock();
if(myhandler!=null)
msg = myhandler.obtainMessage(100);
if(msg!=null)
myhandler.sendMessageDelayed(msg, 1000);
}
};
这样?
还是不行啊。。。
继续贴logcat
【 在 bixiaopeng 的大作中提到: 】
: findViewById请放在setContentView后面,
: 实际上findViewById()是调用了contentView对象的方法的
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="倒计时 BETA"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="请在下面的输入框中输入倒计时的秒数:"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditView
android:id="@+id/input"
android:layout_width="111dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button"
android:layout_width="196dp"
android:layout_height="wrap_content"
android:text="开始倒计时" />
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
貌似没错啊。。?
啊啊啊啊啊啊我好笨。。。
【 在 bixiaopeng 的大作中提到: 】
: 你看下你xml文件