今天在程序中加入button计数功能,并能够用textview显示出来。原以为很简单,结果尝试了五六次,还是出错。上网搜,发现别人都说是很简单,但却很少有完整程序,尤其是我出错的那一点,一直没人指明。在此po出完整代码,同时说一下我走的弯路。
界面很简单,一个按钮一个文本框。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.nihao1.MainActivity" >
<TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />
<Button
android:id="@+id/btn"
android:layout_toRightOf="@id/txt"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="btn"/>
</RelativeLayout>
下面是activity的程序:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView txt;
private int count=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn=(Button)findViewById(R.id.btn);
txt=(TextView)findViewById(R.id.txt);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
count++;
txt.setText(String.valueOf(count));
}
});
}
}
此处,我的出错点有:
1)把TextView txt=(TextView)findViewById(R.id.txt)写在了onCreate()方法中,这样会提示你把txt换成final形式,但是换过后,运行阶段会出错,界面闪退。
2)把count的定义与初始化放在了onCreate()方法中,同样会提示让改为final型,而final型是不能再改变值的。
3)txt.setText()中,如果没有用String.valueOf(),也是会出问题,闪退。
目前遇到的是这些,虽说这个功能听起来很容易,但是写好还是不容易,也许这也是我还被称为菜鸟的原因吧。
Android填坑,继续...