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:通过日期选择器修改日期,调整后的日期用文本框视图显示。仿照书上所写,请高手帮忙

解决方案 »

  1.   

    布局文件 main.xml文件中有DatePicker 吗?
      

  2.   

    我一直研究 VB  .   请问   写 Android   用什么编译?
      

  3.   

    添加了DatePicker和TextView了的,然后ID本来是datePicker1和textView1,由于报错我就把它改成DatePicker和TextView了,是不是这个的问题啊?
      

  4.   

    用eclipse,具体配置有点复杂,可以在网上找,有很多
      

  5.   


     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问题解决没?
      

  6.   

    我的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" >    <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);
    编译没有问题,一运行就异常退出了
      

  7.   

    还需要JDK、Android SDK、貌似还没有发现有汉化的
      

  8.   


    有这么麻烦? 听一业界网友说的  可以用 txt编译的?
      

  9.   

    LZ我晕哦你要直接把错误报告贴出来我直接找出错误了。。你这样说我真一直没看出来= =!!
    我把你贴的代码复制到自己电脑上运行了下,错误根本不在XML文件嘛= =!
    这个代码错在这一句:cur_month=calendar.get(Calendar.MONTH+1);。
    应该改成cur_month=calendar.get(Calendar.MONTH)+1;
    我估计书上没错的,应该是LZ抄错了。
    其实错误日志已经把错误说得比较清楚了。。月份应该是1到12月,从日历取出来的月份是0-11.
    我一看。。果然是月份那儿错了。。LZ抄书上代码不仔细啊= =!!
      

  10.   

    只有把显示的那里改改了
    textview.setText("当前时间:"+cur_year+"年"+(cur_month+1)+"月"+cur_day+"日");
    运行成功,功能达到
      

  11.   

    在括号里面+1的程序运行就直接强制退出了,我也不知道为什么。不过我不在那个地方+1了,在显示月份的时候+1就行了
    textview.setText("当前时间:"+cur_year+"年"+(cur_month+1)+"月"+cur_day+"日");
      

  12.   


    书上写的就是括号内+1的,而且注释上也写着getMonth返回的月份值是0~11.我觉得有可能是书上程序运行的版本和我自己编程的版本不同,或者是书上的eclipse版本和我用的不同,才会出现这种问题。
      

  13.   

    datepicker=(DatePicker)this.findViewById(R.id.DatePicker);
    textview=(TextView)this.findViewById(R.id.TextView); 
    是不是要强制转换一下的问题?如改成这样:DatePicker datepicker=(DatePicker)this.findViewById(R.id.DatePicker);
    TextView=(TextView)this.findViewById(R.id.TextView);