简体   繁体   English

Android导航抽屉片段

[英]Android Navigation drawer fragments

I am working on an Android application that implements a NavigationDrawer. 我正在开发实现NavigationDrawer的Android应用程序。

The NavigationDrawer works fine, so do the fragments transitions but I can't access the Fragment's elements. NavigationDrawer可以正常工作,片段过渡也可以,但是我无法访问Fragment的元素。

Here there is my drawer onItemClick() listener's code: 这是我的抽屉onItemClick()侦听器的代码:

ConfigureFragment configure = new ConfigureFragment();
Button bt;
InFragment in = new InFragment();
OutFragment out = new OutFragment();
ConditioningFragment cond = new ConditioningFragment();
private String lft = null;
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    selectItem(position);
    android.app.FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    switch(position){
        case 0:
            if(lft == null){
            transaction.replace(R.id.mainContent,configure,"ConfigureFragment");
            transaction.commit();
            lft = "ConfigureFragment";
            }else{
                transaction.replace(fragmentManager.findFragmentByTag(lft).getId(),configure,"ConfigureFragment");
                transaction.commit();
                lft = "ConfigureFragment";
            }
        bt = (Button)configure.getView().findViewById(R.id.configure_bt); //throws NullPointerException
        break;
        case 1:
            if(lft == null){
                transaction.replace(R.id.mainContent,in,"InFragment");
                transaction.commit();
                lft = "InFragment";
            }else{
                transaction.replace(fragmentManager.findFragmentByTag(lft).getId(),in,"InFragment");
                transaction.commit();
                lft = "InFragment";
            }
            break;
        case 2:
            if(lft == null){
                transaction.replace(R.id.mainContent,out,"OutFragment");
                transaction.commit();
                lft = "OutFragment";
            }else{
                transaction.replace(fragmentManager.findFragmentByTag(lft).getId(),out,"OutFragment");
                transaction.commit();
                lft = "OutFragment";
            }
            break;
    }
    drawerLayout.closeDrawer(Gravity.LEFT);
}

String variables don't work with operators like, == . String变量不适用于==等运算符。 You need to use: 您需要使用:

stringVariableOne.equals(stringVariableTwo);

In order to check if the value of one String variable( stringVariableOne , in this case) is equal to another String variable or null ( stringVariableTwo , in this case). 为了检查一个String变量(在这种情况下为stringVariableOne )的值是否等于另一个String变量或为null (在这种情况下为stringVariableTwo )。

Example: 例:

lft.equals(null);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM