2017-03-22 42 views
1

嘗試將一個類中的隨機生成變量傳遞給另一個類,以便在另一個類中同步我的應用程序的背景和另一個片段中的標題。將rand變量從一個類傳遞給另一個具有相同值的另一個類

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值被製成,在每個類別分開使用。

+0

的[我如何通過活動之間的數據在Android應用程序?(可能的複製http://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-in -android-application) –

回答

-1

通過使用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(); 
    } 
} 
0

您應該考慮使用意圖 例如,如果你想從一個班通項目的方式。

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"); 
+0

我不認爲我可以使用它,僅僅是因爲我已經在同一個活動中使用Intent來轉換到另一個活動,並且當嘗試使用隨機生成的變量使用.putExtra時,會出現一些奇怪的行爲。我的解決方案充分解決了我的問題。 – fadysi92

相關問題