android app小白试水-fragment跳转浏览器debug

本文记录了一位新手在安卓编程中初次接触Fragment的经历。由于新版IDE推荐使用Fragment代替直接在Activity中编写代码,作者探讨了Fragment作为MainActivity子单元的概念,以及如何在Fragment中编写具体布局和功能。在理解Fragment为Activity的不同视图部分后,作者在JaCaRanda文件的后台代码部分进行响应的覆盖以实现功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

非常小白的开始了安卓的编程之旅,由于没有系统的理解便开始直接码代码,而coursera上老师用的是老版本的IDE,而我自己装的eclipse是新版的IDE,提倡fragment写法,因此遇到不少问题,对于fragment的理解也在入门。


老师的activity是直接在mainactivity中便能够通过activity_main.xml便可以自动生成代码。但是由于在新版的IDE中提倡使用fragment,fragment可以理解为main_activity的子单元,main_activity由多个fragment构成,因此main_activity中只要写入多个fraagment的关系就可以了,而具体的布局在fragment.xml中进行编写。既然有更小的单位可以进行处理,自然在main_activity中的代码便简介了很多,更多的功能在fraagment中写。而粗略看了一下fragment的理解,可以把其理解为在activity中不同的view。jacaranda文件中会自动生成fragment中的后台代码部分,编写的后台响应便应该在这一部分进行覆盖。

public static class PlaceholderFragment extends Fragment

要想通过按钮添加一个打开浏览器和指定网页的操作,在fargment部分的代码如下:

@Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) 
        {
            final View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            mybutton = (Button) rootView.findViewById(R.id.button1);
            mybutton.setOnClickListener(new OnClickListener() 
            {
				public void onClick(View v) 
				{
					String url = "www.baidu.com";
					Intent i = new Intent(Intent.ACTION_VIEW);
					i.setData(Uri.parse(url));
					//i.setClass(getActivity(), new Activity().getClass());
					//getActivity();
					startActivity(i);
				}
			});
            return rootView;
        }

这样便通过button打开了百度的网页,可以看到xml部分代码如下:

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="96dp"
        android:text="@string/showgem" />


布局的样式如下:


通过点击showGEM按钮就应该出现浏览器并打开百度主页。但是在运行时,可以发现只要一点button程序便会退出,而log部分会出现错误提示:no activity found to handle intent 。但是emulator上面是有浏览器的,原来是fragment不知道需要跳转到的activity的类型,而activity便是要打开浏览器,因此是安卓自带浏览器的类型。因此在startactivity()前面加一句:i.setClassName("com.android.browser", "com.android.browser.BrowserActivity");便可以直接打开了:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值