AndroidはIntentでページジャンプを実現
6310 ワード
Intentメッセージング
IntentがAndroidの各コンポーネント間のジャンプを支援
1、
startActivity(intent)
パッケージの下に新しいクラスを作成します.class
XMLファイルfactivityを新規作成xml
同様に、2番目のclassとxmlのペアを作成します.
AndroidManiFestに2つの新しいクラスを登録し、デフォルトの起動クラスを一番前にします.
ボタンイベントを追加:
2、
startActivityForResult(intent,requestCode);
onActivityResult(int requestCode,int resultCode,Intent data)
setResult(resultCode,data);
コードの表示:
FActivity.java
SActivity.java
Appの署名とパッケージ:
1、各アプリケーション開発者の合法性を保証するため.
2、同じPackage Nameでインストールしたプログラムを混同して、悪意のある改ざんが発生しないようにする
3、リリースごとの一貫性を保証する(バージョンが異なるため、自動更新がインストールできない場合)
IntentがAndroidの各コンポーネント間のジャンプを支援
1、
startActivity(intent)
パッケージの下に新しいクラスを作成します.class
public class FActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
}
}
XMLファイルfactivityを新規作成xml
<Button
android:id="@+id/bt1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="First"/>
<Button
android:id="@+id/bt2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Second"/>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:layout_gravity="center"
/>
同様に、2番目のclassとxmlのペアを作成します.
AndroidManiFestに2つの新しいクラスを登録し、デフォルトの起動クラスを一番前にします.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bcp.layouttest">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".FActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ボタンイベントを追加:
public class FActivity extends AppCompatActivity {
private Button bt_first;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
/***
*
*/
bt_first= (Button) findViewById(R.id.bt1);
bt_first.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
// :
// :
intent.setClass (FActivity.this,SActivity.class);
startActivity(intent);
}
});
}
}
2、
startActivityForResult(intent,requestCode);
onActivityResult(int requestCode,int resultCode,Intent data)
setResult(resultCode,data);
コードの表示:
FActivity.java
public class FActivity extends AppCompatActivity {
private Button bt_first;
private Button bt_second;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
/***
*
*/
bt_first= (Button) findViewById(R.id.bt1);
bt_first.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
intent.setClass (FActivity.this,SActivity.class);
startActivity(intent);
}
});
/***
* startActivityForresult
*/
bt_second= (Button) findViewById(R.id.bt2);
bt_second.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent().setClass(FActivity.this,SActivity.class);
/***
*
*/
startActivityForResult(intent,1);
}
});
tv= (TextView) findViewById(R.id.text1);
}
/***
* startActivityForresult ,
* 、
* 、
* 、
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//
if(requestCode==1&&resultCode==2){
String content=data.getStringExtra("intent");
tv.setText(content);
}
}
}
SActivity.java
public class SActivity extends AppCompatActivity{
private Button bt;
private String content="Hello~!";
@Override
protected void onCreate( Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sactivity);
/***
*
* intent
*/
bt= (Button) findViewById(R.id.bt3);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
//
intent.putExtra("intent",content);
setResult(2,intent);
//
finish();
}
});
}
}
Appの署名とパッケージ:
1、各アプリケーション開発者の合法性を保証するため.
2、同じPackage Nameでインストールしたプログラムを混同して、悪意のある改ざんが発生しないようにする
3、リリースごとの一貫性を保証する(バージョンが異なるため、自動更新がインストールできない場合)