Android无法动态注册主活动的解决方法
2016-10-23 16:11
113 查看
主活动是无法动态注册的。
下面提供两种解决办法:
布局文件:
Activity中的代码:
下面提供两种解决办法:
1.主活动中Intent跳转
直接使用Intent从主活动跳转到目标活动,并且结束掉主活动。(注意:低版本Android系统中这样写会闪烁一下)例如下面的代码:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); startActivity(new Intent(this, SecondActivity.class)); finish(); }
2.布局的可见与不可见
一个活动中写两个match_parent的布局,始终让其中一个visibility=gone,另一个布局visibility=visible.下面一个例子,在第一次进入时加载布局first,之后进入时加载布局second。:布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.test.MainActivity"> <LinearLayout android:id="@+id/first" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:text="第一布局的按钮" android:id="@+id/bt" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout android:id="@+id/second" android:visibility="gone" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="第二个layout" android:textSize="30sp" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> </LinearLayout>
Activity中的代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { LinearLayout linearLayout1, linearLayout2; linearLayout1 = (LinearLayout) findViewById(R.id.first); linearLayout2 = (LinearLayout) findViewById(R.id.second); if(isFirst()){ linearLayout1.setVisibility(View.VISIBLE); linearLayout2.setVisibility(View.GONE); }else { linearLayout2.setVisibility(View.VISIBLE); linearLayout1.setVisibility(View.GONE); } Button bt = (Button) findViewById(R.id.bt); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "点击", Toast.LENGTH_SHORT).show(); } }); } //是否是第一次进入应用 private boolean isFirst(){ boolean isFirst ; SharedPreferences preferences = getSharedPreferences("first",MODE_PRIVATE); isFirst =preferences.getBoolean("first", true); if(isFirst){ SharedPreferences.Editor editor = getSharedPreferences("first", MODE_PRIVATE).edit(); editor.putBoolean("first",false); editor.commit(); } return isFirst; }
相关文章推荐
- 无法定位序数325于动态链接库SHDOCVW.dll的解决方法
- 一些文件未注册导致mssql表文件无法找开的解决方法
- 重装系统后 eclipse 无法加载 android javadoc 的 解决方法
- 【转】Android TabActivity无法正常bindService解决方法
- “无法定位程序输入点CsrVerifyRegion于动态链接库ntdll.dll上。”的原因及解决方法
- Ubuntu下Android手机无法识别进入调试问题解决方法
- 安装程序无法创建一个DCOM用户帐号来注册 D:/....的解决方法
- 时代互联 域名注册查询接口api的使用 (w3Sockets)(这篇文章,关于是放到C:\WINDOWS或者是C:\WINDOWS\system32要亲自试试,附带在 server 2008 R2下无法运行的解决方法)
- 解决develop.android.com无法访问到最佳方法
- 无法定位序数325于动态链接库SHDOCVW.dll的解决方法
- 安装 xilisoft Video Converter Ultimate后无法注册解决方法
- VC Listview 在Release版本下无法动态改变图标的解决方法
- 解决IE6下JS动态设置图片IMG的SRC时图片无法加载错误的方法
- Android TabActivity无法正常bindService解决方法
- 关于asp.net网站发布后,使用登录控件和注册控件时出现“数据库只读,无法进行数据更新”的解决方法
- 今日Android国内无法同步解决方法
- 关于Android虚拟器无法联网的解决方法
- [技术分享– RMS 篇] 安装 ADRMS 无法注册服务连接点的解决方法
- 解决SQL2000出现"无法执行查询,因为文件缺少或未注册。再次运行安装程序确保要求的文件已注册。"的方法
- android开发网站无法访问解决方法