Не удается разрешить метод show (android.app.FragmentTrasanction, java.lang.String)

Ошибка:

Cannot resolve method 'show(android.app.FragmentTrasanction, java.lang.String)'on line dialog.show(ft,"DatePicker");

Почему я получаю эту ошибку? Я приложил оба файла, необходимые для решения этой проблемы. помогите мне решить эту ошибку. Ниже приведен основной класс:

import android.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;

public class OwnerInformation extends AppCompatActivity implements 
AdapterView.OnItemSelectedListener {

public EditText text_owner_name,text_owner_address;
public EditText text_owner_mob,text_owner_adhaar;

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

     text_owner_name = (EditText) findViewById(R.id.owner_name);
    text_owner_address = (EditText) findViewById(R.id.owner_address);
    text_owner_mob = (EditText) findViewById(R.id.mobile_no);
    text_owner_adhaar = (EditText) findViewById(R.id.adhaar_no);
    Spinner spinner_blood_group = (Spinner) findViewById(R.id.blood_group);
    Spinner spinner_gender = (Spinner) findViewById(R.id.gender);

    ArrayAdapter adapter5 = ArrayAdapter.createFromResource(OwnerInformation.this,R.array.blood_group_array,android.R.layout.simple_spinner_item);
    ArrayAdapter adapter6 = ArrayAdapter.createFromResource(OwnerInformation.this,R.array.gender_array,android.R.layout.simple_spinner_item);

    adapter5.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    adapter6.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    spinner_blood_group.setAdapter(adapter5);
    spinner_gender.setAdapter(adapter6);

    spinner_blood_group.setOnItemSelectedListener(this);
    spinner_gender.setOnItemSelectedListener(this);


}

public void onStart(){
    super.onStart();

    EditText datePicker2=(EditText) findViewById(R.id.datePicker2);
    datePicker2.setOnFocusChangeListener(new View.OnFocusChangeListener(){
        public void onFocusChange(View view, boolean hasfocus){
            if (hasfocus){
                DateDialog2 dialog=new DateDialog2(view);
                FragmentTransaction ft =getFragmentManager().beginTransaction();
                dialog.show(ft, "DatePicker");


            }
        }

    });
}

@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
    String sSelected=adapterView.getItemAtPosition(i).toString();
    //Toast.makeText(getContext(),sSelected,Toast.LENGTH_SHORT).show();
}

@Override
public void onNothingSelected(AdapterView<?> adapterView) {

}
}

Класс Date Dialog приведен ниже: -

 import android.annotation.SuppressLint;
 import android.app.DatePickerDialog;
 import android.app.Dialog;
 import android.os.Bundle;
 import android.support.v4.app.DialogFragment;
 import android.view.View;
 import android.widget.DatePicker;
 import android.widget.EditText;
 import java.util.Calendar;

 @SuppressLint("ValidFragment")
 public class DateDialog2 extends DialogFragment implements 
 DatePickerDialog.OnDateSetListener {
 EditText datePicker2;
 public DateDialog2(View view){
    datePicker2=(EditText)view;
}
public Dialog onCreateDialog(Bundle savedInstanceState) {
    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) {
    //show to the selected date in the text box
    String date2=day+"-"+(month+1)+"-"+year;
    datePicker2.setText(date2);
}
}

Пожалуйста, прочтите При каких обстоятельствах я могу добавить к своему вопросу «срочно» или другие похожие фразы, чтобы получить более быстрые ответы? - вкратце, это не идеальный способ обращения к волонтерам и, вероятно, контрпродуктивно для получения ответов. Пожалуйста, воздержитесь от добавления этого к своим вопросам.

halfer 20.03.2018 11:54
3
1
431
1

Ответы 1

Вам необходимо передать FragmentManager методу show() DialogFragment, а не FragmentTransaction.

Заменять

FragmentTransaction ft =getFragmentManager().beginTransaction();
                dialog.show(ft, "DatePicker");

С участием

dialog.show(getFragmentManager(), "DatePicker");

тогда какой смысл в "ft" @Max

pritesh shahare 19.03.2018 20:21

пожалуйста, объясните, что писать в методе показа, потому что он показывает ошибку в методе показа @Max

pritesh shahare 20.03.2018 07:04

Другие вопросы по теме