跳轉
1.顯示跳轉
4種方法:
public class AActivity extends AppCompatActivity {
private Button ma;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
ma=findViewById(R.id.btn_a);
ma.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//顯式方法1
Intent intent=new Intent(AActivity.this,BActivity.class);
startActivity(intent);
/*顯式跳轉方法2
Intent intent=new Intent();
intent.setClass(AActivity.this,BActivity.class);
startActivity(intent);
*/
/*顯式跳轉方法3
Intent intent=new Intent();
intent.setClassName(AActivity.this,"com.example.textview.jump.BActivity");
startActivity(intent);
*/
/*顯式跳轉方法4
Intent intent=new Intent();
intent.setComponent(new ComponentName(AActivity.this,"com.example.textview.jump.BActivity"));
startActivity(intent);
*/
}
});
}
}
資料傳遞
AActivity點選跳轉後發送資料
AActivity.java
package com.example.textview.jump;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.example.textview.R;
public class AActivity extends AppCompatActivity {
private Button ma;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
ma=findViewById(R.id.btn_a);
ma.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//顯式方法1
Intent intent=new Intent(AActivity.this,BActivity.class);
//數值傳遞
Bundle bundle=new Bundle();
bundle.putString("name","劉亦菲");//bundle裡放傳輸的資料
bundle.putInt("number",28);
intent.putExtras(bundle);//bundle通過intent傳過去
startActivity(intent);
}
});
}
}
BActivity接收資料
B的布局界面放一個TextView用來顯式傳輸來的檔案
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:padding="10dp"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:textColor="#F08080"
android:id="@+id/text_1"/>
</LinearLayout>
BActivity.java
package com.example.textview.jump;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.example.textview.R;
public class BActivity extends AppCompatActivity {
private TextView mTV;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
mTV=findViewById(R.id.text_1);
Bundle bundle=getIntent().getExtras();
String name=bundle.getString("name");
int number=bundle.getInt("number");
mTV.setText(name+","+number);
}
}
結果:A跳轉到B傳遞的資料顯示
startActivityForResul
界面1跳轉到界面2,界面2将得到的資料又轉到界面1.
AActivity.java
package com.example.textview.jump;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.example.textview.R;
public class AActivity extends AppCompatActivity {
private Button ma;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
ma=findViewById(R.id.btn_a);
ma.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//顯式方法1
Intent intent=new Intent(AActivity.this,BActivity.class);
//數值傳遞
Bundle bundle=new Bundle();
bundle.putString("name","劉亦菲");//bundle裡放傳輸的資料
bundle.putInt("number",28);
intent.putExtras(bundle);//bundle通過intent傳過去
// startActivity(intent);
startActivityForResult(intent,0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Toast.makeText(this, data.getExtras().getString("title"), Toast.LENGTH_SHORT).show();
}
}
BActivity.java
package com.example.textview.jump;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.example.textview.R;
public class BActivity extends AppCompatActivity {
private TextView mTV;
private Button mab;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
mTV=findViewById(R.id.text_1);
mab=findViewById(R.id.ab_1);
Bundle bundle=getIntent().getExtras();
String name=bundle.getString("name");
int number=bundle.getInt("number");
mTV.setText(name+","+number);
mab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
Bundle bundle1=new Bundle();
bundle1.putString("title","寶寶回啦了");
intent.putExtras(bundle1);
setResult(Activity.RESULT_OK,intent);
finish();
}
});
}
}
結果:A跳轉到B,B傳回A彈出Toast