您的位置:首页 > 其它

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.直接启动Activity

Intent 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 BroadcastReceiver

Intent 可以成为第五大组件

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: