import java.util.Calendar;
import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TextView;public class MMSActivity extends Activity {
/** Called when the activity is first created. */
private DatePicker datepicker;
private TextView textview;
Calendar calendar;
int cur_year,cur_month,cur_day;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
datepicker=(DatePicker)this.findViewById(R.id.DatePicker);
textview=(TextView)this.findViewById(R.id.TextView);
calendar=Calendar.getInstance();
cur_year=calendar.get(Calendar.YEAR);
cur_month=calendar.get(Calendar.MONTH+1);
cur_day=calendar.get(Calendar.DAY_OF_MONTH);
textview.setText("当前时间:"+cur_year+"年"+cur_month+"月"+cur_day+"日");
datepicker.init(cur_year,cur_month,cur_day,new MyDateChangedListener());
}
private class MyDateChangedListener implements OnDateChangedListener{
public void onDateChanged(DatePicker view,int year,int monthOfYear,int dayOfMonth){
cur_year=year;
cur_month=monthOfYear;
cur_day=dayOfMonth;
textview.setText("当前时间:"+cur_year+"年"+cur_month+"月"+cur_day+"日");
}
}
}
PS:通过日期选择器修改日期,调整后的日期用文本框视图显示。仿照书上所写,请高手帮忙
import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TextView;public class MMSActivity extends Activity {
/** Called when the activity is first created. */
private DatePicker datepicker;
private TextView textview;
Calendar calendar;
int cur_year,cur_month,cur_day;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
datepicker=(DatePicker)this.findViewById(R.id.DatePicker);
textview=(TextView)this.findViewById(R.id.TextView);
calendar=Calendar.getInstance();
cur_year=calendar.get(Calendar.YEAR);
cur_month=calendar.get(Calendar.MONTH+1);
cur_day=calendar.get(Calendar.DAY_OF_MONTH);
textview.setText("当前时间:"+cur_year+"年"+cur_month+"月"+cur_day+"日");
datepicker.init(cur_year,cur_month,cur_day,new MyDateChangedListener());
}
private class MyDateChangedListener implements OnDateChangedListener{
public void onDateChanged(DatePicker view,int year,int monthOfYear,int dayOfMonth){
cur_year=year;
cur_month=monthOfYear;
cur_day=dayOfMonth;
textview.setText("当前时间:"+cur_year+"年"+cur_month+"月"+cur_day+"日");
}
}
}
PS:通过日期选择器修改日期,调整后的日期用文本框视图显示。仿照书上所写,请高手帮忙
datepicker=(DatePicker)this.findViewById(R.id.DatePicker);
findViewById这个函数的意思就是通过控件的ID来找到这个控件,你的ID是什么,就用哪个参数
举个例子<DatePicker android:id="@+id/dp"/>//说明此控件的ID就是dp,在Activity中就用下面这个语句找到:datepicker=(DatePicker)this.findViewById(R.id.dp);
写ID的时候一定记得android:id="@+id/dp"这样写,@+id不要少,他是帮你在R.java文件中自动生成该控件的ID号。
这样说 不知道LZ问题解决没?
<?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" > <DatePicker
android:id="@+id/DP"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <TextView
android:id="@+id/TV"
android:layout_width="match_parent"
android:layout_height="wrap_content" /></LinearLayout>同时将原来红色部分改为
datepicker=(DatePicker)this.findViewById(R.id.DP);
textview=(TextView)this.findViewById(R.id.TV);
编译没有问题,一运行就异常退出了
有这么麻烦? 听一业界网友说的 可以用 txt编译的?
我把你贴的代码复制到自己电脑上运行了下,错误根本不在XML文件嘛= =!
这个代码错在这一句:cur_month=calendar.get(Calendar.MONTH+1);。
应该改成cur_month=calendar.get(Calendar.MONTH)+1;
我估计书上没错的,应该是LZ抄错了。
其实错误日志已经把错误说得比较清楚了。。月份应该是1到12月,从日历取出来的月份是0-11.
我一看。。果然是月份那儿错了。。LZ抄书上代码不仔细啊= =!!
textview.setText("当前时间:"+cur_year+"年"+(cur_month+1)+"月"+cur_day+"日");
运行成功,功能达到
textview.setText("当前时间:"+cur_year+"年"+(cur_month+1)+"月"+cur_day+"日");
书上写的就是括号内+1的,而且注释上也写着getMonth返回的月份值是0~11.我觉得有可能是书上程序运行的版本和我自己编程的版本不同,或者是书上的eclipse版本和我用的不同,才会出现这种问题。
textview=(TextView)this.findViewById(R.id.TextView);
是不是要强制转换一下的问题?如改成这样:DatePicker datepicker=(DatePicker)this.findViewById(R.id.DatePicker);
TextView=(TextView)this.findViewById(R.id.TextView);