Android Studio学习

来源:互联网 发布:知乎毕业生 编辑:程序博客网 时间:2024/04/29 23:20

最近被老师逼着做安卓项目……eclipse搞不定,被迫学AS,听说《第一行代码》很好于是跟着学,结果第一天就因为开发的软件不同被坑得很惨……

后来发现了一个AS版的《第一行代码》

http://www.cnblogs.com/DebugLife/p/4349428.html

照着学发现还是有点小问题,不过幸好评论里有大神纠正了,我在这里整理一下免得以后忘了


2.2 活动的基本用法


新建活动的基本流程:
新建一个布局文件(layout.xml)     
->新建一个活动(继承自AppCompatActivity)
->注册活动( AndroidManifest.xml)




问题

------------------------------------------------------------------------------------------
1

Android Studio New 一个Blank Activity时,默认基类为ActionBarActivity,其子类不支持requestWindowFeature(Window.FEATURE_NO_TITLE);

书上继承的是Activity是因为用的Eclipse,现在这个类里没有标题栏ActionBar了。
如果继承了Activity类则可以在注册活动的avtivity标签里加个theme:
android:theme="@android:style/Theme.Holo.Light.DarkActionBar"或者是public class FirstActivity extends AppCompatActivity继承在这个AppCompatActivity类里。

继承AppCompatActivity后,requestWindowFeature(Window.FEATURE_NO_TITLE);失效了。
要使用 getSupportActionBar().hide();


划重点:

1.AS活动默认继承的类是AppCompatActivity,使用Activity就不能显示标题栏;

2.AS隐藏标题栏的方法是getSupportActionBar().hide();



---------------------------------------------------------


2


在创建menu时,输入item标签后提示“menu items should specify a title”

stackoverfow搜过之后未解决,又搜了menu的使用方法

把原先的xml删掉重新建了一个

找了一个例子复制粘贴上去就不报错了……鬼知道我错哪了



----------------------------------------------------------------------------------


3


等等……我……我的锅……

其实不在xml里注册也是可以的,之前之所以会报错是因为我没有改正intent里传入的参数……

-----------------------------------------------------------------------------------------------------------------


今天也被坑了呢!作者拜托你走点心啊!该贴的代码麻烦你贴上好不好!!!




1.这节有个不太理解的地方,见下

intent.addCategory("com.example.activitytest.MY_CATEGORY");
写下这一行代码后如果xml中没有相应注册的话就会使程序出错,可是之前写的那个intent不会生效吗?

他们之间到底是怎样的关系?感觉无法理解


2.第二个不理解的地方:写了能响应http的activity3之后,点击button1会有四个选项:

一Chrome、

二系统的HTML查看器、

三会打开activity2(有button2)的界面、

四会打开activity3(有button3)的界面。

明明已经没有调用secondactivity.class了,为什么它还会打开?


隐式intent的用法


按钮点击事件设置

Intent intent = new Intent(Intent.ACTION_VIEW);    //为Intent设置Action属性  intent.setData(Uri.parse("http://www.baidu.com")); //为Intent设置DATA属性  startActivity(intent);



AndroidManifest.xml中注册

<intent-filter>  <action android:name="android.intent.action.VIEW" />  <category android:name="android.intent.category.DEFAULT" />  <data android:scheme="http" />       <!--响应所有的http协议的Intent--></intent-filter>

(补充)调用系统拨号界面

Intent intent = new Intent(Intent.ACTION_DIAL);  intent.setData(Uri.parse("tel:10086"));  startActivity(intent);





-------------------------------------------------------------------------------------------



界面上的元素显示不出来,提示

This view is not constrained, it only has design time positions, so it will jump to (0,0) unless you add constraints
找到了一个很好的解决方法:

在界面上作如图所示的操作即可



0 0
原创粉丝点击