java - datepicker android - 构建错误

标签 java android android-fragments android-datepicker

在 Android 开发网站上,我尝试了这个日期选择器 http://developer.android.com/guide/topics/ui/controls/pickers.html#ShowingTheTimePicker我将它添加到我的 eclipse 中的一个新项目中,但是我遇到了构建错误,你能帮忙吗?

为什么它不起作用?

错误:

  1. 未为 MainActivity 类型定义方法 getSupportFragmentManager()
  2. 类 DatePickerFragment 的非法修饰符;只允许公开、摘要和最终版本

Java代码:

package com.example.datepicker;

import java.util.Calendar;

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.os.Bundle;
import android.widget.DatePicker;

public static class DatePickerFragment 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
}
}

布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity" >

    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:text="fghgffhf" 
        android:onClick="showDatePickerDialog" />

</RelativeLayout>

日期选择器对话框:

package com.example.datepicker;

import android.os.Bundle;
import android.app.Activity;
import android.app.DialogFragment;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void showDatePickerDialog(View v) {
        DialogFragment newFragment = new DatePickerFragment();
        newFragment.show(getSupportFragmentManager(), "datePicker");
    }
}

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.datepicker"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.datepicker.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

最佳答案

  1. 您的 MainActivity 需要扩展 FragmentActivity ,它是支持库中 Activity 的子类,允许您访问 fragment 的支持库相关方法。

  2. 除非是嵌套类,否则不能在 java 中将类声明为静态类。看看this question了解详情。

关于java - datepicker android - 构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21725527/

相关文章:

java - 聊天应用程序——哪种技术更适合在 Android 中实现聊天应用程序

java - ElasticBeanstalk Java, Spring Activity 配置文件

java - 将 post 数据从 JSP 发送到 Java Servlet

java - 使用 BaseAdapter 的 listView 上的 android-Button 单击事件

java - 聊天 fragment 不更新 recyclerview

java - 将菜单按钮更改为普通按钮

android - 更改搜索栏颜色

Android 应用程序不能在 3G 网络中工作,但可以在 WIFI 中工作

android - Volley - 取消 fragment 停止请求

java - 将 int 值从 Activity Fragment 传递到另一个 Fragment