2010-04-08 74 views
1

我在我的應用程序中聲明意圖時遇到問題。我有一個帶有文本字段和微調的表單。我添加了一個onClick必須顯示Datepicker的按鈕。我已經將DatePicker聲明爲一個新類並將其添加到intent onCLick中。在android中聲明意圖過濾器

date.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) 
    { 
     Intent i=new Intent(SendMail.this,DatePicker.class); 

     startActivity(i); 

    } 
}); 

在清單我宣佈

<activity android:name=".DatePicker"> 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

現在的問題是,當我按一下按鈕整個形式越來越復位,所有的微調值越來越消失了。這一定是因爲錯誤地宣佈了意圖。因此,任何人都可以指定如何聲明我的意圖,以便在主窗體上調用DatePicker。iteself

回答

1

對於日期選擇器結果,您不需要新的活動。

讓您SendMail類,以便這些組件...

public class SendMail extends Activity { 

static final int DATE_DIALOG_ID = 1; 

// date and time 
private int mYear; 

private int mMonth; 

private int mDay; 

public void launchSetDate() { 
     showDialog(DATE_DIALOG_ID); 
} 
@Override 
protected Dialog onCreateDialog(int id) { 
     switch (id) { 

      case DATE_DIALOG_ID: 
       return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); 
     } 
     return null; 
} 
@Override 
protected void onPrepareDialog(int id, Dialog dialog) { 
     switch (id) { 
      case DATE_DIALOG_ID: 
       ((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay); 
       break; 
     } 
} 
    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { 

     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
      mYear = year; 
      mMonth = monthOfYear; 
      mDay = dayOfMonth; 
      // do something with the result 
     } 
    }; 
} 

然後,而不是運行startActivity,你調用一個方法launchSetDate();

+0

現在排序...謝謝。我收到了一些文本併發送給郵件。我使用Object.getText()。toString()來獲取字符串。同樣,我怎樣才能得到日期的值...? – 2010-04-08 09:47:47

+0

你有onDateSet事件,你有mYear,mMonth,mDay使用這些來計算你想要的日期 – Pentium10 2010-04-08 10:02:57