Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示对话框未显示_Java_Android_Date_Dialog - Fatal编程技术网

Java 显示对话框未显示

Java 显示对话框未显示,java,android,date,dialog,Java,Android,Date,Dialog,在活动中,我调用了不同的片段,我希望用户能够通过单击显示当前日期的文本视图来更改日期,显示对话框不希望显示 dateView.setOnClickListener(new View.OnClickListener() { @SuppressWarnings("deprecation") public void onClick(View v) { getActivity().showDialog(999); } }); Android Studio告诉我,

活动
中,我调用了不同的片段,我希望用户能够通过单击显示当前日期的
文本视图
来更改日期,
显示对话框
不希望显示

dateView.setOnClickListener(new View.OnClickListener() {
    @SuppressWarnings("deprecation")
    public void onClick(View v) {
        getActivity().showDialog(999);
    }
});
Android Studio告诉我,
CreateDialog
从未被使用过

protected Dialog onCreateDialog(int id) {
    // TODO Auto-generated method stub
    if (id == 999) {
        return new DatePickerDialog(getContext(),
                myDateListener, year, month, day);
    }
    return null;
}
完整代码:

主要活动

public class MainActivity extends AppCompatActivity {

  public static Bundle myBundl = new Bundle();
private List<ItemSlideMenu> listSliding;
private SlidingMenuAdapter3 adapter;
private Calendar calendar;
private TextView dateView;
TimePicker timePicker2;
final Context context = this ;
private int year, month, day;
private ListView listViewSliding;
private DrawerLayout drawerLayout;
private ActionBarDrawerToggle actionBarDrawerToggle;
String name1;

@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    calendar = Calendar.getInstance();
    year = calendar.get(Calendar.YEAR);
    month = calendar.get(Calendar.MONTH);
    day = calendar.get(Calendar.DAY_OF_MONTH);
showDate(year, month+1, day);
    //Init component
    listViewSliding = (ListView) findViewById(R.id.lv_sliding_menu);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    listSliding = new ArrayList<>();
    //Add item for sliding list
    listSliding.add(new ItemSlideMenu(R.drawable.home_96,"Accueil" ));
    listSliding.add(new ItemSlideMenu(R.drawable.cocktail,"Organiser une Sortie"));
    listSliding.add(new ItemSlideMenu(R.drawable.geo,"Autour de moi"));
    listSliding.add(new ItemSlideMenu(R.drawable.ami,"Liste d'amis" ));
    listSliding.add(new ItemSlideMenu(R.drawable.message,"Contact"));
    listSliding.add(new ItemSlideMenu(R.drawable.information,"Credits"));

    adapter = new SlidingMenuAdapter3(this, listSliding);
    listViewSliding.setAdapter(adapter);

    //Display icon to open/ close sliding list
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    //Set title
    setTitle(listSliding.get(0).getTitle());
    //item selected
    listViewSliding.setItemChecked(0, true);
    //Close menu
    drawerLayout.closeDrawer(listViewSliding);

    //Display fragment 1 when start
    replaceFragment(0);
    //Hanlde on item click

    listViewSliding.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //Set title
            setTitle(listSliding.get(position).getTitle());
            //item selected
            listViewSliding.setItemChecked(position, true);

            if (position==2){
                Intent i2 = new Intent(getApplicationContext(), MapsActivity.class);
                startActivity(i2);

            }   else
            {//Replace fragment
            replaceFragment(position);
            }//Close menu
            drawerLayout.closeDrawer(listViewSliding);
        }
    });

    actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.drawer_opened, R.string.drawer_closed){

        @Override
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            invalidateOptionsMenu();
        }

        @Override
        public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
            invalidateOptionsMenu();
        }
    };

    drawerLayout.setDrawerListener(actionBarDrawerToggle);
}


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

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    if(actionBarDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    actionBarDrawerToggle.syncState();
}

//Create method replace fragment

private void replaceFragment(int pos) {

    android.support.v4.app.Fragment fragment = null;
    switch (pos) {

        case 0:

            fragment = new Fragment1();

            break;
        case 1:
            fragment = new Fragment2();
            break;
        case 2:
            fragment = new Fragment3();
            break;
        case 3 :
            fragment = new Fragment4();
            break;



    }

    if(null!=fragment) {
        android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
        android.support.v4.app.FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.main_content,fragment);
        transaction.addToBackStack(null);
        transaction.commit();
    }
}
@SuppressWarnings("deprecation")
protected Dialog onCreateDialog(int id) {
    // TODO Auto-generated method stub
    if (id == 999) {
        return new DatePickerDialog(this,
                myDateListener, year, month, day);
    }
    else if (id ==98) {
        final Dialog dialog = new Dialog(context);
        dialog.setContentView(R.layout.custom);
        dialog.setTitle("Title...");

        // set the custom dialog components - text, image and button


        Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
        dialogButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Fragment6 fragment = null;
                fragment = new Fragment6();
                FragmentManager fragmentManager = getFragmentManager();
                FragmentTransaction transaction = fragmentManager.beginTransaction();
                transaction.replace(R.id.contact, fragment);
                transaction.addToBackStack(null);
                transaction.commit();
                dialog.dismiss();

            }
        });
        dialog.show();
        // if button is clicked, close the custom dialog
    }


    return null;
}

private DatePickerDialog.OnDateSetListener myDateListener = new
        DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker arg0,
                                  int arg1, int arg2, int arg3) {
                // TODO Auto-generated method stub
                // arg1 = year
                // arg2 = month
                // arg3 = day
                showDate(arg1, arg2+1, arg3);
            }
        };

private void showDate(int year, int month, int day) {

StringBuilder abbes = new StringBuilder().append(day).append("/")
            .append(month).append("/").append(year);

    Bundle bundle = new Bundle();
    bundle.putString("edttext", String.valueOf(abbes));
    // set Fragmentclass Arguments
    Fragment5 fragobj = new Fragment5();
    fragobj.setArguments(bundle);

}
public类MainActivity扩展了AppCompatActivity{
公共静态Bundle mybundle=新Bundle();
私人名单;
专用滑动菜单适配器3;
私人日历;
私有文本视图日期视图;
计时器选择器计时器选择器2;
最终上下文=此;
私人整数年、月、日;
私有列表视图列表视图;
私人抽屉布局;
私人动作bardrawertoggle动作bardrawertoggle;
字符串名称1;
@RequiresApi(api=Build.VERSION\u code.N)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
calendar=calendar.getInstance();
year=calendar.get(calendar.year);
month=calendar.get(calendar.month);
day=calendar.get(calendar.day/u月);
显示日期(年、月+1、日);
//初始组件
ListView滑动=(ListView)findViewById(R.id.lv\u滑动菜单);
抽屉布局=(抽屉布局)findViewById(R.id.抽屉布局);
listSliding=newarraylist();
//为滑动列表添加项目
添加(新项目slidemenu(R.drawable.home_96,“Accueil”);
添加(新项目Slidemenu(R.drawable.鸡尾酒,“组织者未出动”);
添加(新项目slidemenu(R.drawable.geo,“Autour de moi”);
add(newitemslidemenu(R.drawable.ami,“listed'amis”);
添加(新项目slidemenu(R.drawable.message,“Contact”);
添加(新项目slidemenu(R.drawable.information,“Credits”);
适配器=新的SlidingMenuAdapter3(此为listSliding);
ListViewSlidering.setAdapter(适配器);
//显示打开/关闭滑动列表的图标
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//定名
setTitle(listSliding.get(0.getTitle());
//选定项目
listViewSliding.setItemChecked(0,true);
//关闭菜单
抽屉布局。关闭抽屉(ListView滑动);
//启动时显示片段1
替换片段(0);
//点击物品上的图标
listViewSliding.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//定名
setTitle(listSliding.get(position.getTitle());
//选定项目
ListViewSlideing.setItemChecked(位置,true);
如果(位置==2){
Intent i2=新Intent(getApplicationContext(),MapsActivity.class);
星触觉(i2);
}否则
{//替换片段
替换碎片(位置);
}//关闭菜单
抽屉布局。关闭抽屉(ListView滑动);
}
});
actionBarDrawerToggle=新actionBarDrawerToggle(此,抽屉布局,R.string.drawer\u打开,R.string.drawer\u关闭){
@凌驾
打开图纸上的公共空白(视图抽屉视图){
super.onDrawerOpened(抽屉视图);
无效操作菜单();
}
@凌驾
图纸上的公共空白已关闭(视图抽屉视图){
super.onDrawerClosed(抽屉视图);
无效操作菜单();
}
};
抽屉布局。setDrawerListener(actionBarDrawerToggle);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(右菜单.主菜单,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
如果(actionBarDrawerToggle.onOptionsItemSelected(项目)){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
@凌驾
后期创建时受保护的空(捆绑包savedInstanceState){
super.onPostCreate(savedInstanceState);
actionBarDrawerToggle.syncState();
}
//创建方法替换片段
私有void replaceFragment(内部位置){
android.support.v4.app.Fragment Fragment=null;
开关(pos){
案例0:
片段=新片段1();
打破
案例1:
片段=新片段2();
打破
案例2:
片段=新片段3();
打破
案例3:
片段=新片段4();
打破
}
if(null!=片段){
android.support.v4.app.FragmentManager FragmentManager=getSupportFragmentManager();
android.support.v4.app.FragmentTransaction=fragmentManager.beginTransaction();
事务.替换(R.id.main\u内容,片段);
transaction.addToBackStack(空);
commit();
}
}
@抑制警告(“弃用”)
受保护的对话框onCreateDialog(int id){
//TODO自动生成的方法存根
如果(id==999){
返回新的DatePickerDialog(此,
myDateListener,年、月、日);
}
否则,如果(id==98){
最终对话框=新对话框(上下文);
setContentView(R.layout.custom);
对话框。设置标题(“标题…”);
//设置自定义对话框组件-文本、图像和按钮
Button dialogButton=(Button)dialog.findViewById(R.id.dialogButtonOK);
dialogButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Fragment6 fragment=null;
片段=新片段6();
FragmentManager FragmentManager=getFragmentManager();
FragmentTransaction=fragmentManager.beginTransaction();
交易。替换(R.id.contact,片段);
transaction.addToBackStack(空);
commit();
dialog.discover(
public class MainActivity extends AppCompatActivity {

  public static Bundle myBundl = new Bundle();
private List<ItemSlideMenu> listSliding;
private SlidingMenuAdapter3 adapter;
private Calendar calendar;
private TextView dateView;
TimePicker timePicker2;
final Context context = this ;
private int year, month, day;
private ListView listViewSliding;
private DrawerLayout drawerLayout;
private ActionBarDrawerToggle actionBarDrawerToggle;
String name1;

@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    calendar = Calendar.getInstance();
    year = calendar.get(Calendar.YEAR);
    month = calendar.get(Calendar.MONTH);
    day = calendar.get(Calendar.DAY_OF_MONTH);
showDate(year, month+1, day);
    //Init component
    listViewSliding = (ListView) findViewById(R.id.lv_sliding_menu);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    listSliding = new ArrayList<>();
    //Add item for sliding list
    listSliding.add(new ItemSlideMenu(R.drawable.home_96,"Accueil" ));
    listSliding.add(new ItemSlideMenu(R.drawable.cocktail,"Organiser une Sortie"));
    listSliding.add(new ItemSlideMenu(R.drawable.geo,"Autour de moi"));
    listSliding.add(new ItemSlideMenu(R.drawable.ami,"Liste d'amis" ));
    listSliding.add(new ItemSlideMenu(R.drawable.message,"Contact"));
    listSliding.add(new ItemSlideMenu(R.drawable.information,"Credits"));

    adapter = new SlidingMenuAdapter3(this, listSliding);
    listViewSliding.setAdapter(adapter);

    //Display icon to open/ close sliding list
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    //Set title
    setTitle(listSliding.get(0).getTitle());
    //item selected
    listViewSliding.setItemChecked(0, true);
    //Close menu
    drawerLayout.closeDrawer(listViewSliding);

    //Display fragment 1 when start
    replaceFragment(0);
    //Hanlde on item click

    listViewSliding.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //Set title
            setTitle(listSliding.get(position).getTitle());
            //item selected
            listViewSliding.setItemChecked(position, true);

            if (position==2){
                Intent i2 = new Intent(getApplicationContext(), MapsActivity.class);
                startActivity(i2);

            }   else
            {//Replace fragment
            replaceFragment(position);
            }//Close menu
            drawerLayout.closeDrawer(listViewSliding);
        }
    });

    actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.drawer_opened, R.string.drawer_closed){

        @Override
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            invalidateOptionsMenu();
        }

        @Override
        public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
            invalidateOptionsMenu();
        }
    };

    drawerLayout.setDrawerListener(actionBarDrawerToggle);
}


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

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    if(actionBarDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    actionBarDrawerToggle.syncState();
}

//Create method replace fragment

private void replaceFragment(int pos) {

    android.support.v4.app.Fragment fragment = null;
    switch (pos) {

        case 0:

            fragment = new Fragment1();

            break;
        case 1:
            fragment = new Fragment2();
            break;
        case 2:
            fragment = new Fragment3();
            break;
        case 3 :
            fragment = new Fragment4();
            break;



    }

    if(null!=fragment) {
        android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
        android.support.v4.app.FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.main_content,fragment);
        transaction.addToBackStack(null);
        transaction.commit();
    }
}
@SuppressWarnings("deprecation")
protected Dialog onCreateDialog(int id) {
    // TODO Auto-generated method stub
    if (id == 999) {
        return new DatePickerDialog(this,
                myDateListener, year, month, day);
    }
    else if (id ==98) {
        final Dialog dialog = new Dialog(context);
        dialog.setContentView(R.layout.custom);
        dialog.setTitle("Title...");

        // set the custom dialog components - text, image and button


        Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
        dialogButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Fragment6 fragment = null;
                fragment = new Fragment6();
                FragmentManager fragmentManager = getFragmentManager();
                FragmentTransaction transaction = fragmentManager.beginTransaction();
                transaction.replace(R.id.contact, fragment);
                transaction.addToBackStack(null);
                transaction.commit();
                dialog.dismiss();

            }
        });
        dialog.show();
        // if button is clicked, close the custom dialog
    }


    return null;
}

private DatePickerDialog.OnDateSetListener myDateListener = new
        DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker arg0,
                                  int arg1, int arg2, int arg3) {
                // TODO Auto-generated method stub
                // arg1 = year
                // arg2 = month
                // arg3 = day
                showDate(arg1, arg2+1, arg3);
            }
        };

private void showDate(int year, int month, int day) {

StringBuilder abbes = new StringBuilder().append(day).append("/")
            .append(month).append("/").append(year);

    Bundle bundle = new Bundle();
    bundle.putString("edttext", String.valueOf(abbes));
    // set Fragmentclass Arguments
    Fragment5 fragobj = new Fragment5();
    fragobj.setArguments(bundle);

}
@Override
protected Dialog onCreateDialog(int id) {
        // TODO Auto-generated method stub
        if (id == 999) {
            return new DatePickerDialog(getContext(),
                    myDateListener, year, month, day);
        }
        return null;
    }
private void showDate(int year, int month, int day) {

StringBuilder abbes = new StringBuilder().append(day).append("/")
            .append(month).append("/").append(year);
    if(fragment instanceof Fragment4){
       ((Fragemnt4)fragment).dateView.setText(""+abbes);
    }

}
 public class Fragment5 extends android.support.v4.app.Fragment {
private DatePicker datePicker;
private Calendar calendar;
private TextView dateView;
TimePicker timePicker2;
private int year, month, day;
DialogFragment dateFragment;
public Fragment5() {
}

@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_fragment5, container, false);
    dateView = (TextView) rootView.findViewById(R.id.textView3);
    calendar = Calendar.getInstance();
    year = calendar.get(Calendar.YEAR);

    month = calendar.get(Calendar.MONTH);
    day = calendar.get(Calendar.DAY_OF_MONTH);
    showDate(year, month+1, day);

    dateView.setOnClickListener(new View.OnClickListener() {
        @SuppressWarnings("deprecation")
        public void onClick(View v) {

             dateFragment = new DatePickerFragment();
    dateFragment.show(getFragmentManager(), "datePicker");

        }
    });

    return rootView;
}





private void showDate(int year, int month, int day) {
    dateView.setText(new StringBuilder().append(day).append("/")
            .append(month).append("/").append(year));
}

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) {
      showDate(year,month,day);
    }
} }
void showDialog (int id)