我应该使用哪个fragageManager

问题描述 投票:0回答:3

我正在使用片段并尝试创建一个表格,将日期存储在数据库中后,我可以使用日期选择器获取日期(现在没有问题),我正在按照一个指南学习如何在其中使用日期选择器的问题。碎片活动。我有两个问题(还有错误)我一直在使用This guide

并且我收到此错误:

“该类型的方法getSupportFragmentManager未定义”

我读过“片段”中没有getSupportFragmentManager,但它们在“ FragmentActivity”中

“ Fragments”中有等效的方法吗?或我应该怎么做。

我正在搜索和阅读许多指南,但这是我发现并遇到此问题的简便方法。

我将发布我的Fragment类,片段xml和datepickerfragment

FragmentClass(regventa_Fragment)..

public class Regventa_Fragment extends Fragment  {
public Button guardar;
public Button fecha_button;

public Regventa_Fragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_regventa, container, false);

    Toast.makeText(getActivity(), "Hola", Toast.LENGTH_SHORT).show();


    return rootView;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);
    guardar=(Button)getView().findViewById(R.id.guardar);
    //fecha_button=(Button)getView().findViewById(R.id.fecha_button);
    getView().findViewById(R.id.fecha_button).setOnClickListener(new OnClickListener() {

           @Override
           public void onClick(View v) {
            showDatePicker();
           }

        private void showDatePicker() {
            // TODO Auto-generated method stub

        }
          });
}

private void showDatePicker() {
      DatePickerFragment date = new DatePickerFragment();
      /**
       * Set Up Current Date Into dialog
       */
      Calendar calender = Calendar.getInstance();
      Bundle args = new Bundle();
      args.putInt("year", calender.get(Calendar.YEAR));
      args.putInt("month", calender.get(Calendar.MONTH));
      args.putInt("day", calender.get(Calendar.DAY_OF_MONTH));
      date.setArguments(args);
      /**
       * Set Call back to capture selected date
       */
      date.setCallBack(ondate);
      date.show(getFragmentManager(), "Date Picker");
     }

     OnDateSetListener ondate = new OnDateSetListener() {
      @Override
      public void onDateSet(DatePicker view, int year, int monthOfYear,
        int dayOfMonth) {
      }
     };

}

fragment_regventa.XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="15dp"
    android:gravity="center_horizontal" >

    <Button
        android:id="@+id/guardar"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/guardar" />

    <Button
        android:id="@+id/borrar"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/borrar" />
</LinearLayout>

<Button
    android:id="@+id/fecha_button"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/fecha_venta"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="15dp"
    android:text="@string/fecha_button" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="@string/regventa"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
    android:id="@+id/comprador"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:ems="10"
    android:hint="@string/comprador" >

    <requestFocus />
</EditText>

<TextView
    android:id="@+id/fecha_venta"
    style="android:editTextStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/fecha_button"
    android:layout_below="@+id/comprador"
    android:layout_marginTop="17dp"
    android:ems="10"
    android:hint="@string/fecha_venta"
    android:textAlignment="center"
    android:textSize="17sp" />

<EditText
    android:id="@+id/elevendidos"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/pesoventa"
    android:layout_below="@+id/pesoventa"
    android:layout_marginTop="24dp"
    android:ems="10"
    android:hint="@string/elementos_vendidos"
    android:inputType="number" />

<EditText
    android:id="@+id/pesoventa"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/comprador"
    android:layout_below="@+id/fecha_button"
    android:layout_marginTop="14dp"
    android:ems="10"
    android:hint="@string/pesoventa" />

DatePicker分段器

public class DatePickerFragment extends DialogFragment {
OnDateSetListener ondateSet;

public DatePickerFragment() {
}

public void setCallBack(OnDateSetListener ondate) {
ondateSet = ondate;
}

private int year, month, day;

@Override
public void setArguments(Bundle args) {
super.setArguments(args);
year = args.getInt("year");
month = args.getInt("month");
day = args.getInt("day");
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new DatePickerDialog(getActivity(), ondateSet, year, month, day);
}
}

如果我从“ Fragment”更改为“ FragmentActivity”,那会很好吗?与我有其他片段?..谢谢

android android-fragments datepicker android-fragmentactivity
3个回答
1
投票

我解决了问题。我正在使用


1
投票

getSupportFragmentManager()用于android支持库


0
投票

首先,您需要了解FragmentActivity和Fragment之间的区别。 FragmentActivity是Activity的子类,而activity持有Fragment&两个是不同的东西。请参见下面的链接,并查看该片段不是不是从Activity继承的。

© www.soinside.com 2019 - 2024. All rights reserved.