清除内容视图
Clearing a content view
首先,这可能是一个由两部分组成的问题。
所以我开始在我的应用程序中使用导航栏,使用此栏更改视图导致了我的问题。
第一张图片显示了我的应用程序的启动,所有 fields/buttons 都是棘手的。第二张图片显示了当我 select 导航栏中的项目时发生的情况。被调用的视图只包含名为 "SCAN" 的按钮,但它只是将这个新视图与以前的视图组合在一起。
这是第一个的相关代码 view/MainActivity
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
在同一个MainActivity中,这里是处理导航栏的代码。 Nav_Frame 是在 content_main.xml 中声明的 FrameLayout。
public boolean onNavigationItemSelected(MenuItem item)
{
// Handle navigation view item clicks here.
int id = item.getItemId();
android.app.FragmentManager FragManager = getFragmentManager();
if (id == R.id.nav_Menu) {
FragManager.beginTransaction().replace(R.id.Nav_Frame,new MainScreen()).commit();
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
这是导航栏调用的 MainScreen() class
public class MainScreen extends Fragment
{
View MyView;
Button Scan;
RelativeLayout RelLay;
MainActivity MA= new MainActivity();
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
RelLay=(RelativeLayout)MA.findViewById(R.id.RelativeLayout);
RelLay.removeAllViews();
MyView = inflater.inflate(R.layout.home_screen,container,false);
Scan=(Button)MyView.findViewById(R.id.btnScan);
return MyView;
}
}
我认为我的问题在于此 class。经过昨天的谷歌搜索,.removeAllViews() 方法似乎是我所需要的。但是我不确定哪个 RelativeLayout 更清楚,MainActivity() 还是 MainScreen()。
另一个问题是 RelLay 行使应用程序崩溃,给我一个 NullPointerException。
提前致谢。
无需删除片段内的主 activity 视图
只需简单地添加你的片段就可以了
首先,这可能是一个由两部分组成的问题。 所以我开始在我的应用程序中使用导航栏,使用此栏更改视图导致了我的问题。
第一张图片显示了我的应用程序的启动,所有 fields/buttons 都是棘手的。第二张图片显示了当我 select 导航栏中的项目时发生的情况。被调用的视图只包含名为 "SCAN" 的按钮,但它只是将这个新视图与以前的视图组合在一起。
这是第一个的相关代码 view/MainActivity
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
在同一个MainActivity中,这里是处理导航栏的代码。 Nav_Frame 是在 content_main.xml 中声明的 FrameLayout。
public boolean onNavigationItemSelected(MenuItem item)
{
// Handle navigation view item clicks here.
int id = item.getItemId();
android.app.FragmentManager FragManager = getFragmentManager();
if (id == R.id.nav_Menu) {
FragManager.beginTransaction().replace(R.id.Nav_Frame,new MainScreen()).commit();
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
这是导航栏调用的 MainScreen() class
public class MainScreen extends Fragment
{
View MyView;
Button Scan;
RelativeLayout RelLay;
MainActivity MA= new MainActivity();
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
RelLay=(RelativeLayout)MA.findViewById(R.id.RelativeLayout);
RelLay.removeAllViews();
MyView = inflater.inflate(R.layout.home_screen,container,false);
Scan=(Button)MyView.findViewById(R.id.btnScan);
return MyView;
}
}
我认为我的问题在于此 class。经过昨天的谷歌搜索,.removeAllViews() 方法似乎是我所需要的。但是我不确定哪个 RelativeLayout 更清楚,MainActivity() 还是 MainScreen()。
另一个问题是 RelLay 行使应用程序崩溃,给我一个 NullPointerException。
提前致谢。
无需删除片段内的主 activity 视图 只需简单地添加你的片段就可以了