2

私は Android 開発に慣れていないので、Android 2.3.3 エミュレーターで DatePicker ダイアログを表示しようとしていますが、クラッシュしています。私は自分のコードに何が欠けているのですか? しかし、このコードは Android 4.0 で動作します。DatePickerFragment クラス

public class DatePickerFragment extends DialogFragment implements 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
    }

}

DatePicker ダイアログを開始するアクティビティ クラス:

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.DialogFragment;

import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;


@SuppressLint({ "NewApi", "NewApi", "NewApi" })
public class FormAnalysis extends FragmentActivity{

@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fanalysis);
    //getActionBar().setDisplayHomeAsUpEnabled(true);


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.fanalysis, menu);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    //switch (item.getItemId()) {
      //  case android.R.id.home:
        //    NavUtils.navigateUpFromSameTask(this);
            return true;
    //}
    //return super.onOptionsItemSelected(item);
}

public void generate(View view){


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

更新 ここにスタックトレースがあります

[2012-11-16 00:31:55 - 食料安全保障] ActivityManager: 開始: 意図 { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=kz.bimash.food.security /.スターター}
[2012-11-16 00:31:55 - 食糧安全保障] ActivityManager: 警告: 活動が開始されていないため、現在のタスクが最前面に移動されました
4

1 に答える 1

5

DialogFragment のインポートは、クラスのバージョンが正しくありません。android.app.DialogFragment ではなく android.support.v4.app.DialogFragment である必要があります。そうしないと、2.3 で正しく動作しません。

于 2012-11-15T18:46:42.017 に答える