[英]Passing rand variable from one class to another with same value
試圖在一個類中傳遞一個隨機生成的變量,以供另一個類使用,以同步我的應用程序的背景和另一個片段中的標頭。
public class LoginMain extends AppCompatActivity {
RelativeLayout loginMain;
Random rand = new Random();
int bgPick = rand.nextInt(5) + 1; //distribute int from 1 to 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_main);
//must be called after the content view is set.
loginMain = (RelativeLayout) findViewById(R.id.activity_login_main);
randomBG();//method that determines the background image based on the bgPick value.
}
public static int getBgPick(){
return bgPick;
}
主類:
public class MainActivity extends AppCompatActivity {
AppBarLayout appBarLayout;
int bgPick = LoginMain.getBgPick();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
appBarLayout = (AppBarLayout) findViewById(R.id.appbar);
randomHeader();//method to determine header image based on bgPick value determined in the LoginMain class.
這將導致在每個類中分別創建和使用兩個bgPick值。
您應該考慮使用Intent例如,如果您要將項目從一個類傳遞到另一個類。
Intent intent =new Intent(FirstActivity.this,SecondAcitivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
intent.putExtra("EXTRA_String", "California");
startActivity(intent);
在SecondActivity中;
String s = getIntent().getStringExtra("EXTRA_SESSION_ID");
String place = getIntent().getStringExtra("EXTRA_String");
通過使用Static
和getBgPick
方法解決。
public class LoginMain extends AppCompatActivity {
RelativeLayout loginMain;
Random rand = new Random();
public static int bgPick;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_main);
this.bgPick = rand.nextInt(5) + 1; //distribute int from 1 to 3
//must be called after the content view is set.
loginMain = (RelativeLayout) findViewById(R.id.activity_login_main);
randomBG();
}
public static int getBgPick(){
return bgPick;
}
}
主類:
public class MainActivity extends AppCompatActivity {
AppBarLayout appBarLayout;
int bgPick = LoginMain.getBgPick();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
appBarLayout = (AppBarLayout) findViewById(R.id.appbar);
randomHeader();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.