簡體   English   中英

將rand變量從一類傳遞到具有相同值的另一類

[英]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");

通過使用StaticgetBgPick方法解決。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM