2015/8/19/横、竖、满屏/消除标题、标题栏/startActivityForResult(启动带有返回值的intent)/Intent
2015-08-19 20:24
393 查看
横屏、竖屏、满屏
消除标题、标题栏
startActivityForResult
Intent
一横屏、竖屏、满屏
1.如果代码中没有写有关横屏或者竖屏的代码是默认为可以根据手机的旋转来自动调整横屏或者竖屏2.如果在manifest的Activity中添加代码
android:screenOrientation="portrait"
那么显示方式就一直为竖屏,不会因为手机的调整而调整,一般程序开发中很少用到
3.如果在manifest的Activity中添加代码
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
代表的是全屏显示
二消除标题栏、消除标题就两行代码就解决掉了
在onCreate中方法写上这两行文字就可以了this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏,必须写在setContentView之前 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏
三Activity的启动
1.直接启动ActivityIntent intent=newIntent(ManiActivity(当前Activity).this,SecondActivity(另一个Activity).class);
startActivity(intent);
2.带返回值的启动方式startActivityForResult(intent)
(1)创建一个新的Activity,在Layout中添加一个Button和一个输入文本框
(2)在当前Activity中添加一个Button,添加一个点击事件,能够调用到创建的Activity,然后用startActivityForResult(intent,requestCode)启动,第二个参数为int值,可以随便写
(3)在新创建的Activity中调用getIntent()方法得到Intent,然后将从文本框中得到的数据封装intent.putExtra(“secondbackdata”,editText.getText().toString()),然后设置resultCode setResult(RESULT_OK,intent);最后调用ActivityForResult.this.finish(); 结束Activity
(4)在当前Activity重写onActivityResult(requestCode,resultCode,Intent data)
判断resultCode
然后从data中取出数据
?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editText" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="返回结果" android:id="@+id/button_back" /> </LinearLayout> public class ActivityForResult extends Activity { private EditText editText; private Button button; Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_for_result); editText= (EditText) findViewById(R.id.editText); intent= getIntent(); //用于得到调用该Activity的intent button= (Button) findViewById(R.id.button_back); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { intent.putExtra("backdata",editText.getText().toString());//将的得到的文本放入到指定的key中 setResult(RESULT_OK,intent); //设置结果 ActivityForResult.this.finish(); //结束该Activity } }); } } //当前Activity中 Button button_forresult=(Button)findViewById(R.id.button_forresult); button_forresult.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Intent intent_forresult=new Intent(MainActivity.this,ActivityForResult.class); //传入的2个参数第一个是Intent类型的,第二个是一个固定的数值(随便写) startActivityForResult(intent_forresult,0x23); } }); *** * 该方法是用于能在该Activity中调用具有返回值的Activity,用于显示返回值 * @param requestCode 第一个参数是requestCode,即在startActivityForResult中传入的第二参数 * @param resultCode 第二个参数是resultCode,在第二个界面中setResult中的第一个参数 * @param data 第三个参数data,即在第二个界面中setResult中的第二个参数 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode==RESULT_OK){ String str=data.getStringExtra("backdata"); //从data中的到返回值 textView.setText(str); //将得到的返回值显示在文本框中 } } //最重要的一点要在manife中声明Activity <activity android:name=".ActivityForResult"></activity>
Intent
Android四大组件 Activity Service ContentProvider BroadcastReceiverIntent 可以成为第五大组件
2.Intent Android中进行通讯的工具,类似包裹
3.下面的程序主要是模拟练习Action的,主要功能有:打电话发短信打开网页
隐式启动Activity
public class IntentActivityTest extends Activity {
private Button mBtnCall;
private Button mBtnCallMe;
private Button mBtnSms;
private Button mBtnWeb;
private Button mBtnHide;
private TextView mEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intent_activity_test);
mEditText= (TextView) findViewById(R.id.editText2);
//点击事件,用于启动隐式界面,并将文本传送给调用的界面
mBtnHide= (Button) findViewById(R.id.button_hide);
mBtnHide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent("com.example.my.eightingaug.test");//调用指定的Activity
String str=mEditText.getText().toString();
intent.putExtra("toMain",str);
startActivity(intent);
}
});
//点击事件,用于向10086发送文本内容为"The SMS test"的信息,
//需要 在manifest中得到权限<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
mBtnSms= (Button) findViewById(R.id.button_sms);
mBtnSms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("smsto:10086"));
intent.putExtra("sms_body","The SMS test");
startActivity(intent);
}
});
//点击事件,用于打开指定URL
mBtnWeb= (Button) findViewById(R.id.button_web);
mBtnWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
});
//点击事件,用于拨打电话,可以从键盘输入
mBtnCall= (Button) findViewById(R.id.button_call);
mBtnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_DIAL);
//如果不设置DATA只会调用打电话的界面,没有电话号码,如果有号码必须设置Data
//传入一个Uri
intent.setData(Uri.parse("tel:18300605531"));
startActivity(intent);
}
});
//点击事件,用于直接拨打电话,需要权限
// <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
mBtnCallMe= (Button) findViewById(R.id.button_callme);
mBtnCallMe.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);
//如果有号码会直接拨打号码
//传入一个Uri
intent.setData(Uri.parse("tel:18300605531"));
startActivity(intent);
}
});
}
}
/在主要Activity中的程序
//点击事件,用于调用其他的Activity
Button button_phone= (Button) findViewById(R.id.button_phone);
button_phone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent_phone=new Intent(MainActivity.this,IntentActivityTest.class);
startActivity(intent_phone);
}
});
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.my.eightingaug" >
<!-- 这里是两个权限,一个是CALL_PHONE用于手机拨打电话另一个是SEND_SMS用于手机发送短信-->
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
>
<!-- android:screenOrientation="portrait"-->
<!--android:theme="@android:style/Theme.NoTitleBar.Fullscreen"-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!--这是自己定义的intent过滤器,在某个Activity中放入该过滤器,
只有当调用该name="名字一般为包的名称"时,才会启动该过滤器,即调用
这个Activity也可以调用Activity自身,可以用于隐式的启动界面
-->
<intent-filter>
<action android:name="com.example.my.eightingaug.test" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- 每一个活动都需要在manifest中声明-->
<activity android:name=".SecondActivity"
android:theme="@android:style/Theme.Dialog">
</activity><!--theme主题是以弹窗的形式返回第二个窗口-->
<activity android:name=".ActivityForResult"></activity>
<activity android:name=".IntentActivityTest"></activity>
</application>
</manifest>
相关文章推荐
- 2015 HUAS Summer Trainning #6~J
- PostgreSQL Replication之第一章 理解复制概念(2)
- HDU1465 第六周L题(错排组合数)
- 在Linux DeviceTree添加dtsi文件并在驱动中读取节点信息写入sys文件系统
- PHP实现用户登录和注册的功能
- Java中异常的写法
- 浅谈UDP协议的网络编程
- myeclipse中更改web项目在tomcat中部署的路径
- tolua++的一些api的
- Solr 关于Analyzer、Tokenizer、和Filter,以及中文分词器
- 浏览器内核及差异
- uiView 设置圆角
- IE8 各种版本链接
- iOS学习笔记6-关于NSNotificationCenter及同步异步
- 海思芯片 IPC_HI3518的解读
- ios 导航控制器
- 笔试题:输入一串数字,以逗号隔开,将数字排序后输出
- android 获取网络连接(登陆验证+获取数据)
- ubuntu 14.04 + openni + primesense + xtion pro live
- redis:hash数据类型与操作