Android setContentView 实现同一个activity下不同view的切换

Android setContentView 实现同一个activity下不同view的切换  

Android 中实现不同activity的切换很简单,只要设置intent就行了,但是同一个activity中实现不同view的切换还是需要一点知识的。

其实也很简单只要在要切换的地方加上一下两句就可以了。

LayoutInflater inflater = ( LayoutInflater ) uide.getSystemService( Context.LAYOUT_INFLATER_SERVICE );

View lo = ( View ) inflater.inflate( R.layout.categories, null );

然后设置View显示:

uide.setContentView(lo);

如果想用Dialog显示可以如下处理

builder = new AlertDialog.Builder(uide);     

builder.setView(lo);     

alertDialog = builder.create();     

alertDialog.show();

一个是显示View一个是以Dialog的形式显示。

这里要说明的一点是首先要显示不同的View要把获取的*.xml文件对象转换成View对象,其次如果在同一个类中(就是同一个.java文件中)直接写setContentView方法就行了,如果是在不同类中处理一个类的实例,如我们在别的类中调用前一个类的setContentView这个时候就要把前一个类的当前对象穿过去如果 class B 方法test 处理 class A的setContentView方法:

A调用B中的test方法: test(A.this)

B中的方法声明:test(A a)

然后可以用a.setContentView();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 创建项目:新建一个Android项目,选择Empty Activity模板。 2. 添加Fragment:右键点击app目录,New -> Fragment -> Fragment(Blank)。创建两个Fragment,分别为Fragment1和Fragment2。 3. 编写布局文件:在res/layout文件夹下创建activity_main.xml文件,添加一个FrameLayout作为容器,用于切换Fragment。 ``` <?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" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <FrameLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/btn_fragment1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Fragment1" android:layout_weight="1"/> <Button android:id="@+id/btn_fragment2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Fragment2" android:layout_weight="1"/> </LinearLayout> </LinearLayout> ``` 4. 编写Fragment:分别在Fragment1和Fragment2的布局文件中添加一个TextView,用于区分两个Fragment。 ``` <!--fragment1.xml--> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Fragment1" android:gravity="center"/> <!--fragment2.xml--> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Fragment2" android:gravity="center"/> ``` 5. MainActivity中添加Fragment:在MainActivity中使用FragmentManager添加Fragment1。 ``` public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Fragment1 fragment1; private Fragment2 fragment2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fragment1 = new Fragment1(); fragment2 = new Fragment2(); getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, fragment1).commit(); findViewById(R.id.btn_fragment1).setOnClickListener(this); findViewById(R.id.btn_fragment2).setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_fragment1: getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment1).commit(); break; case R.id.btn_fragment2: getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment2).commit(); break; } } } ``` 6. 运行程序:点击按钮可以切换Fragment1和Fragment2。 注:以上代码仅供参考,可能存在语法错误或者逻辑问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值