首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日期选择器在AVD Android 2.2 API 8中不起作用

日期选择器在AVD Android 2.2 API 8中不起作用
EN

Stack Overflow用户
提问于 2013-12-13 21:03:22
回答 2查看 559关注 0票数 1

我使用了来自http://developer.android.com/guide/topics/ui/controls/pickers.html的示例Date Picker,当AVD设置如下所示时,它运行正常

目标平台4.22和API Level 17。但是,当我使用下面的AVD设置测试相同的代码时,它崩溃了

目标平台2.2和API Level 8

我的代码如下所示

MainActivity.java

代码语言:javascript
复制
package com.example.datepicker;

import android.os.Build;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.View;

@SuppressLint("NewApi")
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
                
    }
    
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    @SuppressLint("NewApi")
    public void showTimePickerDialog(View v) {
        DialogFragment newFragment = new ShowCalendar();
        newFragment.show(getFragmentManager(), "datePicker");
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

ShowCalendar.java

代码语言:javascript
复制
package com.example.datepicker;

import java.util.Calendar;
import android.annotation.SuppressLint;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.widget.DatePicker;

@SuppressLint("NewApi")
public class ShowCalendar extends DialogFragment
implements DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

        // Create a new instance of DatePickerDialog and return it
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        // Do something with the date chosen by the user
    }
    
}   

请注意,正如示例中所暗示的那样,我使用treid将MainActivity.java中的Activity类替换为FragmentActivity类。但仍然是同一个问题。我哪里错了?

EN

回答 2

Stack Overflow用户

发布于 2013-12-13 21:05:17

导入

代码语言:javascript
复制
import android.support.v4.app.DialogFragment;

而不是

代码语言:javascript
复制
import android.app.DialogFragment;

如果要使用API11以下的Fragment,则需要导入提供向后兼容性的android.support.v4.app

票数 1
EN

Stack Overflow用户

发布于 2013-12-13 21:32:13

使用以下步骤-

1.更改活动以扩展FragmentActivity类

2.将对getFragmentManager()方法的调用更改为getSupportFragmentManager()方法

3.组织或更新导入

来源-

http://mobile.tutsplus.com/tutorials/android/android-compatibility-working-with-fragments/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20567241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档